@@ -11,7 +11,6 @@ import type {
11
11
PanelMode ,
12
12
PickerRef ,
13
13
SelectorProps ,
14
- SelectorRef ,
15
14
SharedHTMLAttrs ,
16
15
SharedPickerProps ,
17
16
ValueDate ,
@@ -27,6 +26,7 @@ import useRangeValue, { useInnerValue } from './hooks/useFlexibleValue';
27
26
import useInputReadOnly from './hooks/useInputReadOnly' ;
28
27
import useInvalidate from './hooks/useInvalidate' ;
29
28
import useOpen from './hooks/useOpen' ;
29
+ import { usePickerRef } from './hooks/usePickerRef' ;
30
30
import usePresets from './hooks/usePresets' ;
31
31
import useRangeActive from './hooks/useRangeActive' ;
32
32
import useRangePickerValue from './hooks/useRangePickerValue' ;
@@ -75,15 +75,15 @@ export interface BasePickerProps<DateType extends object> extends SharedPickerPr
75
75
onPanelChange ?: ( values : DateType , modes : PanelMode ) => void ;
76
76
}
77
77
78
- export interface SinglePickerProps < DateType extends object > extends SharedPickerProps < DateType > {
78
+ export interface SinglePickerProps < DateType extends object > extends BasePickerProps < DateType > {
79
79
// Value
80
80
value ?: DateType ;
81
81
defaultValue ?: DateType ;
82
82
onChange ?: ( date : DateType , dateString : string ) => void ;
83
83
onCalendarChange ?: ( date : DateType , dateString : string , info : BaseInfo ) => void ;
84
84
}
85
85
86
- export interface MultiplePickerProps < DateType extends object > extends SharedPickerProps < DateType > {
86
+ export interface MultiplePickerProps < DateType extends object > extends BasePickerProps < DateType > {
87
87
multiple : true ;
88
88
89
89
// Value
@@ -174,17 +174,7 @@ function Picker<DateType extends object = any>(
174
174
} = props ;
175
175
176
176
// ========================= 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 ) ;
188
178
189
179
// ======================== Locale ========================
190
180
const filledLocale = useLocale ( locale ) ;
0 commit comments