Skip to content

Commit a34094f

Browse files
committed
refactor: Use useMergedState instead of merge manually
1 parent 1d690d4 commit a34094f

File tree

1 file changed

+13
-10
lines changed

1 file changed

+13
-10
lines changed

src/PickerPanel.tsx

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -224,19 +224,22 @@ function PickerPanel<DateType>(props: PickerPanelProps<DateType>) {
224224
return nextMode;
225225
};
226226

227-
const [innerMode, setInnerMode] = React.useState<PanelMode>(() => {
228-
if (picker === 'time') {
229-
return 'time';
230-
}
231-
return getInternalNextMode('date');
232-
});
233-
234227
// Save panel is changed from which panel
235-
const [sourceMode, setSourceMode] = React.useState<PanelMode>(
236-
() => innerMode,
228+
const [mergedMode, setInnerMode] = useMergedState(
229+
() => {
230+
if (picker === 'time') {
231+
return 'time';
232+
}
233+
return getInternalNextMode('date');
234+
},
235+
{
236+
value: mode,
237+
},
237238
);
238239

239-
const mergedMode: PanelMode = mode || innerMode;
240+
const [sourceMode, setSourceMode] = React.useState<PanelMode>(
241+
() => mergedMode,
242+
);
240243

241244
const onInternalPanelChange = (newMode: PanelMode, viewValue: DateType) => {
242245
const nextMode = getInternalNextMode(newMode);

0 commit comments

Comments
 (0)