@@ -19,7 +19,6 @@ import {
19
19
} from '@mui/x-date-pickers/hooks' ;
20
20
import { PickersInputLocaleText } from '@mui/x-date-pickers/locales' ;
21
21
import {
22
- BaseFieldProps ,
23
22
onSpaceOrEnter ,
24
23
UsePickerResponse ,
25
24
WrapperVariant ,
@@ -83,24 +82,37 @@ export interface RangePickerFieldSlotProps<
83
82
> ;
84
83
}
85
84
85
+ export type RangePickerPropsForFieldSlot <
86
+ TIsSingleInput extends boolean ,
87
+ TDate extends PickerValidDate ,
88
+ TEnableAccessibleFieldDOMStructure extends boolean ,
89
+ TError ,
90
+ > =
91
+ | ( TIsSingleInput extends true
92
+ ? BaseSingleInputFieldProps <
93
+ DateRange < TDate > ,
94
+ TDate ,
95
+ RangeFieldSection ,
96
+ TEnableAccessibleFieldDOMStructure ,
97
+ TError
98
+ >
99
+ : never )
100
+ | ( TIsSingleInput extends false
101
+ ? BaseMultiInputFieldProps <
102
+ DateRange < TDate > ,
103
+ TDate ,
104
+ RangeFieldSection ,
105
+ TEnableAccessibleFieldDOMStructure ,
106
+ TError
107
+ >
108
+ : never ) ;
109
+
86
110
export interface UseEnrichedRangePickerFieldPropsParams <
111
+ TIsSingleInput extends boolean ,
87
112
TDate extends PickerValidDate ,
88
113
TView extends DateOrTimeViewWithMeridiem ,
89
114
TEnableAccessibleFieldDOMStructure extends boolean ,
90
115
TError ,
91
- FieldProps extends BaseFieldProps <
92
- DateRange < TDate > ,
93
- TDate ,
94
- RangeFieldSection ,
95
- TEnableAccessibleFieldDOMStructure ,
96
- TError
97
- > = BaseFieldProps <
98
- DateRange < TDate > ,
99
- TDate ,
100
- RangeFieldSection ,
101
- TEnableAccessibleFieldDOMStructure ,
102
- TError
103
- > ,
104
116
> extends Pick <
105
117
UsePickerResponse < DateRange < TDate > , TView , RangeFieldSection , any > ,
106
118
'open' | 'actions'
@@ -116,7 +128,12 @@ export interface UseEnrichedRangePickerFieldPropsParams<
116
128
localeText : PickersInputLocaleText < TDate > | undefined ;
117
129
pickerSlotProps : RangePickerFieldSlotProps < TDate , TEnableAccessibleFieldDOMStructure > | undefined ;
118
130
pickerSlots : RangePickerFieldSlots | undefined ;
119
- fieldProps : FieldProps ;
131
+ fieldProps : RangePickerPropsForFieldSlot <
132
+ TIsSingleInput ,
133
+ TDate ,
134
+ TEnableAccessibleFieldDOMStructure ,
135
+ TError
136
+ > ;
120
137
anchorRef ?: React . Ref < HTMLDivElement > ;
121
138
currentView ?: TView | null ;
122
139
initialView ?: TView ;
@@ -151,17 +168,11 @@ const useMultiInputFieldSlotProps = <
151
168
startFieldRef,
152
169
endFieldRef,
153
170
} : UseEnrichedRangePickerFieldPropsParams <
171
+ false ,
154
172
TDate ,
155
173
TView ,
156
174
TEnableAccessibleFieldDOMStructure ,
157
- TError ,
158
- BaseMultiInputFieldProps <
159
- DateRange < TDate > ,
160
- TDate ,
161
- RangeFieldSection ,
162
- TEnableAccessibleFieldDOMStructure ,
163
- TError
164
- >
175
+ TError
165
176
> ) => {
166
177
type ReturnType = BaseMultiInputFieldProps <
167
178
DateRange < TDate > ,
@@ -336,17 +347,11 @@ const useSingleInputFieldSlotProps = <
336
347
anchorRef,
337
348
currentView,
338
349
} : UseEnrichedRangePickerFieldPropsParams <
350
+ true ,
339
351
TDate ,
340
352
TView ,
341
353
TEnableAccessibleFieldDOMStructure ,
342
- TError ,
343
- BaseSingleInputFieldProps <
344
- DateRange < TDate > ,
345
- TDate ,
346
- RangeFieldSection ,
347
- TEnableAccessibleFieldDOMStructure ,
348
- TError
349
- >
354
+ TError
350
355
> ) => {
351
356
type ReturnType = BaseSingleInputFieldProps <
352
357
DateRange < TDate > ,
@@ -453,6 +458,7 @@ export const useEnrichedRangePickerFieldProps = <
453
458
TError ,
454
459
> (
455
460
params : UseEnrichedRangePickerFieldPropsParams <
461
+ boolean ,
456
462
TDate ,
457
463
TView ,
458
464
TEnableAccessibleFieldDOMStructure ,
@@ -470,9 +476,25 @@ export const useEnrichedRangePickerFieldProps = <
470
476
}
471
477
472
478
if ( params . fieldType === 'multi-input' ) {
473
- return useMultiInputFieldSlotProps ( params ) ;
479
+ return useMultiInputFieldSlotProps (
480
+ params as unknown as UseEnrichedRangePickerFieldPropsParams <
481
+ false ,
482
+ TDate ,
483
+ TView ,
484
+ TEnableAccessibleFieldDOMStructure ,
485
+ TError
486
+ > ,
487
+ ) ;
474
488
}
475
489
476
- return useSingleInputFieldSlotProps ( params ) ;
490
+ return useSingleInputFieldSlotProps (
491
+ params as UseEnrichedRangePickerFieldPropsParams <
492
+ true ,
493
+ TDate ,
494
+ TView ,
495
+ TEnableAccessibleFieldDOMStructure ,
496
+ TError
497
+ > ,
498
+ ) ;
477
499
/* eslint-enable react-hooks/rules-of-hooks */
478
500
} ;
0 commit comments