Skip to content

Commit 6425fbf

Browse files
committed
chore: tmp of it
1 parent d1f7651 commit 6425fbf

File tree

3 files changed

+24
-26
lines changed

3 files changed

+24
-26
lines changed

src/NewPicker/PickerInput/RangePicker.tsx

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ import type {
1515
PickerRef,
1616
RangeTimeProps,
1717
SelectorProps,
18-
SelectorRef,
1918
SharedHTMLAttrs,
2019
SharedPickerProps,
2120
ValueDate,
@@ -30,6 +29,7 @@ import { useFieldFormat } from './hooks/useFieldFormat';
3029
import useInputReadOnly from './hooks/useInputReadOnly';
3130
import useInvalidate from './hooks/useInvalidate';
3231
import useOpen from './hooks/useOpen';
32+
import { usePickerRef } from './hooks/usePickerRef';
3333
import usePresets from './hooks/usePresets';
3434
import useRangeActive from './hooks/useRangeActive';
3535
import useRangeDisabledDate from './hooks/useRangeDisabledDate';
@@ -206,17 +206,7 @@ function RangePicker<DateType extends object = any>(
206206
} = props;
207207

208208
// ========================= Refs =========================
209-
const selectorRef = React.useRef<SelectorRef>();
210-
211-
React.useImperativeHandle(ref, () => ({
212-
nativeElement: selectorRef.current?.nativeElement,
213-
focus: () => {
214-
selectorRef.current?.focus();
215-
},
216-
blur: () => {
217-
selectorRef.current?.blur();
218-
},
219-
}));
209+
const selectorRef = usePickerRef(ref);
220210

221211
// ======================== Locale ========================
222212
const filledLocale = useLocale(locale);

src/NewPicker/PickerInput/SinglePicker.tsx

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,6 @@ import type {
1111
PanelMode,
1212
PickerRef,
1313
SelectorProps,
14-
SelectorRef,
1514
SharedHTMLAttrs,
1615
SharedPickerProps,
1716
ValueDate,
@@ -27,6 +26,7 @@ import useRangeValue, { useInnerValue } from './hooks/useFlexibleValue';
2726
import useInputReadOnly from './hooks/useInputReadOnly';
2827
import useInvalidate from './hooks/useInvalidate';
2928
import useOpen from './hooks/useOpen';
29+
import { usePickerRef } from './hooks/usePickerRef';
3030
import usePresets from './hooks/usePresets';
3131
import useRangeActive from './hooks/useRangeActive';
3232
import useRangePickerValue from './hooks/useRangePickerValue';
@@ -75,15 +75,15 @@ export interface BasePickerProps<DateType extends object> extends SharedPickerPr
7575
onPanelChange?: (values: DateType, modes: PanelMode) => void;
7676
}
7777

78-
export interface SinglePickerProps<DateType extends object> extends SharedPickerProps<DateType> {
78+
export interface SinglePickerProps<DateType extends object> extends BasePickerProps<DateType> {
7979
// Value
8080
value?: DateType;
8181
defaultValue?: DateType;
8282
onChange?: (date: DateType, dateString: string) => void;
8383
onCalendarChange?: (date: DateType, dateString: string, info: BaseInfo) => void;
8484
}
8585

86-
export interface MultiplePickerProps<DateType extends object> extends SharedPickerProps<DateType> {
86+
export interface MultiplePickerProps<DateType extends object> extends BasePickerProps<DateType> {
8787
multiple: true;
8888

8989
// Value
@@ -174,17 +174,7 @@ function Picker<DateType extends object = any>(
174174
} = props;
175175

176176
// ========================= Refs =========================
177-
const selectorRef = React.useRef<SelectorRef>();
178-
179-
React.useImperativeHandle(ref, () => ({
180-
nativeElement: selectorRef.current?.nativeElement,
181-
focus: () => {
182-
selectorRef.current?.focus();
183-
},
184-
blur: () => {
185-
selectorRef.current?.blur();
186-
},
187-
}));
177+
const selectorRef = usePickerRef(ref);
188178

189179
// ======================== Locale ========================
190180
const filledLocale = useLocale(locale);
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
import * as React from 'react';
2+
import type { PickerRef, SelectorRef } from '../../interface';
3+
4+
export function usePickerRef(ref: React.Ref<PickerRef>) {
5+
const selectorRef = React.useRef<SelectorRef>();
6+
7+
React.useImperativeHandle(ref, () => ({
8+
nativeElement: selectorRef.current?.nativeElement,
9+
focus: () => {
10+
selectorRef.current?.focus();
11+
},
12+
blur: () => {
13+
selectorRef.current?.blur();
14+
},
15+
}));
16+
17+
return selectorRef;
18+
}

0 commit comments

Comments
 (0)