@@ -11,12 +11,14 @@ import {
11
11
DateRangePickerProps ,
12
12
} from '@mui/x-date-pickers-pro/DateRangePicker' ;
13
13
import { useDateRangeManager } from '@mui/x-date-pickers-pro/managers' ;
14
- import { unstable_useMultiInputRangeField as useMultiInputRangeField } from '@mui/x-date-pickers-pro/hooks' ;
14
+ import {
15
+ unstable_useMultiInputRangeField as useMultiInputRangeField ,
16
+ UseMultiInputRangeFieldTextFieldProps ,
17
+ } from '@mui/x-date-pickers-pro/hooks' ;
15
18
import { Unstable_PickersSectionList as PickersSectionList } from '@mui/x-date-pickers/PickersSectionList' ;
16
19
import {
17
20
MultiInputFieldSlotTextFieldProps ,
18
21
MultiInputFieldRefs ,
19
- BaseMultiInputPickersTextFieldProps ,
20
22
} from '@mui/x-date-pickers-pro/models' ;
21
23
22
24
const BrowserFieldRoot = styled ( 'div' , { name : 'BrowserField' , slot : 'Root' } ) ( {
@@ -35,11 +37,12 @@ const BrowserFieldContent = styled('div', { name: 'BrowserField', slot: 'Content
35
37
) ;
36
38
37
39
interface BrowserTextFieldProps
38
- extends BaseMultiInputPickersTextFieldProps < true > ,
39
- Omit <
40
- React . HTMLAttributes < HTMLDivElement > ,
41
- keyof BaseMultiInputPickersTextFieldProps < true >
42
- > { }
40
+ extends UseMultiInputRangeFieldTextFieldProps <
41
+ true ,
42
+ React . HTMLAttributes < HTMLDivElement >
43
+ > {
44
+ triggerRef ?: React . Ref < HTMLDivElement > ;
45
+ }
43
46
44
47
function BrowserTextField ( props : BrowserTextFieldProps ) {
45
48
const {
@@ -68,15 +71,14 @@ function BrowserTextField(props: BrowserTextFieldProps) {
68
71
focused,
69
72
error,
70
73
71
- InputProps : { ref , startAdornment , endAdornment } = { } ,
74
+ triggerRef ,
72
75
73
76
// The rest can be passed to the root element
74
77
...other
75
78
} = props ;
76
79
77
80
return (
78
- < BrowserFieldRoot { ...other } ref = { ref } >
79
- { startAdornment }
81
+ < BrowserFieldRoot { ...other } ref = { triggerRef } >
80
82
< BrowserFieldContent >
81
83
< PickersSectionList
82
84
elements = { elements }
@@ -90,7 +92,6 @@ function BrowserTextField(props: BrowserTextFieldProps) {
90
92
onKeyDown = { onKeyDown }
91
93
/>
92
94
</ BrowserFieldContent >
93
- { endAdornment }
94
95
</ BrowserFieldRoot >
95
96
) ;
96
97
}
@@ -109,8 +110,8 @@ interface BrowserMultiInputDateRangeFieldProps
109
110
function BrowserMultiInputDateRangeField (
110
111
props : BrowserMultiInputDateRangeFieldProps ,
111
112
) {
112
- const pickerContext = usePickerContext ( ) ;
113
113
const manager = useDateRangeManager ( ) ;
114
+ const pickerContext = usePickerContext ( ) ;
114
115
const { internalProps, forwardedProps } = useSplitFieldProps ( props , 'date' ) ;
115
116
const { slotProps, ...otherForwardedProps } = forwardedProps ;
116
117
@@ -129,21 +130,25 @@ function BrowserMultiInputDateRangeField(
129
130
const fieldResponse = useMultiInputRangeField ( {
130
131
manager,
131
132
internalProps,
132
- startForwardedProps : startTextFieldProps ,
133
- endForwardedProps : endTextFieldProps ,
133
+ startTextFieldProps,
134
+ endTextFieldProps,
135
+ rootProps : {
136
+ ref : pickerContext . rootRef ,
137
+ spacing : 2 ,
138
+ direction : 'row' as const ,
139
+ overflow : 'auto' ,
140
+ ...otherForwardedProps ,
141
+ } ,
134
142
} ) ;
135
143
136
144
return (
137
- < Stack
138
- ref = { pickerContext . rootRef }
139
- spacing = { 2 }
140
- direction = "row"
141
- overflow = "auto"
142
- { ...otherForwardedProps }
143
- >
144
- < BrowserTextField { ...( fieldResponse . startDate as BrowserTextFieldProps ) } />
145
+ < Stack { ...fieldResponse . root } >
146
+ < BrowserTextField
147
+ { ...fieldResponse . startTextField }
148
+ triggerRef = { pickerContext . triggerRef }
149
+ />
145
150
< span > –</ span >
146
- < BrowserTextField { ...( fieldResponse . endDate as BrowserTextFieldProps ) } />
151
+ < BrowserTextField { ...fieldResponse . endTextField } />
147
152
</ Stack >
148
153
) ;
149
154
}
0 commit comments