1
- import {
2
- DatePicker ,
3
- DatePickerProps ,
4
- DatePickerSlotProps ,
5
- } from '@mui/x-date-pickers/DatePicker'
6
1
import {
7
2
Control ,
8
3
FieldError ,
@@ -11,51 +6,52 @@ import {
11
6
PathValue ,
12
7
useController ,
13
8
UseControllerProps ,
14
- } from ' react-hook-form'
15
- import { TextFieldProps , useForkRef } from ' @mui/material'
16
- import { useFormError } from ' ./FormErrorProvider'
17
- import { forwardRef , ReactNode , Ref , RefAttributes } from ' react'
9
+ } from " react-hook-form" ;
10
+ import { TextFieldProps , useForkRef } from " @mui/material" ;
11
+ import { useFormError } from " ./FormErrorProvider" ;
12
+ import { forwardRef , ReactNode , Ref , RefAttributes } from " react" ;
18
13
import {
14
+ DatePicker ,
15
+ DatePickerProps ,
16
+ DatePickerSlotProps ,
19
17
DateValidationError ,
20
18
PickerChangeHandlerContext ,
21
- } from '@mui/x-date-pickers'
22
- import { defaultErrorMessages } from './messages/DatePicker'
23
- import {
24
- useLocalizationContext ,
25
19
validateDate ,
26
- } from '@mui/x-date-pickers/internals'
27
- import { useTransform } from './useTransform'
28
- import { getTimezone } from './utils'
29
- import { PickerValidDate } from '@mui/x-date-pickers/models'
20
+ } from "@mui/x-date-pickers" ;
21
+ import { useLocalizationContext } from "@mui/x-date-pickers/internals" ;
22
+ import { defaultErrorMessages } from "./messages/DatePicker" ;
23
+ import { useTransform } from "./useTransform" ;
24
+ import { getTimezone } from "./utils" ;
25
+ import { PickerValidDate } from "@mui/x-date-pickers/models" ;
30
26
31
27
export type DatePickerElementProps <
32
28
TFieldValues extends FieldValues = FieldValues ,
33
29
TName extends FieldPath < TFieldValues > = FieldPath < TFieldValues > ,
34
30
TValue extends PickerValidDate = PickerValidDate ,
35
31
TEnableAccessibleFieldDOMStructure extends boolean = false ,
36
- > = Omit < DatePickerProps < TValue > , ' value' | ' slotProps' > & {
37
- name : TName
38
- required ?: boolean
39
- isDate ?: boolean
40
- parseError ?: ( error : FieldError | DateValidationError ) => ReactNode
41
- rules ?: UseControllerProps < TFieldValues , TName > [ ' rules' ]
42
- control ?: Control < TFieldValues >
43
- inputProps ?: TextFieldProps
44
- helperText ?: TextFieldProps [ ' helperText' ]
45
- textReadOnly ?: boolean
32
+ > = Omit < DatePickerProps < TValue > , " value" | " slotProps" > & {
33
+ name : TName ;
34
+ required ?: boolean ;
35
+ isDate ?: boolean ;
36
+ parseError ?: ( error : FieldError | DateValidationError ) => ReactNode ;
37
+ rules ?: UseControllerProps < TFieldValues , TName > [ " rules" ] ;
38
+ control ?: Control < TFieldValues > ;
39
+ inputProps ?: TextFieldProps ;
40
+ helperText ?: TextFieldProps [ " helperText" ] ;
41
+ textReadOnly ?: boolean ;
46
42
slotProps ?: Omit <
47
43
DatePickerSlotProps < TValue , TEnableAccessibleFieldDOMStructure > ,
48
- ' textField'
49
- >
50
- overwriteErrorMessages ?: typeof defaultErrorMessages
44
+ " textField"
45
+ > ;
46
+ overwriteErrorMessages ?: typeof defaultErrorMessages ;
51
47
transform ?: {
52
- input ?: ( value : PathValue < TFieldValues , TName > ) => TValue | null
48
+ input ?: ( value : PathValue < TFieldValues , TName > ) => TValue | null ;
53
49
output ?: (
54
50
value : TValue | null ,
55
51
context : PickerChangeHandlerContext < DateValidationError >
56
- ) => PathValue < TFieldValues , TName >
57
- }
58
- }
52
+ ) => PathValue < TFieldValues , TName > ;
53
+ } ;
54
+ } ;
59
55
60
56
type DatePickerElementComponent = <
61
57
TFieldValues extends FieldValues = FieldValues ,
@@ -64,7 +60,7 @@ type DatePickerElementComponent = <
64
60
> (
65
61
props : DatePickerElementProps < TFieldValues , TName , TValue > &
66
62
RefAttributes < HTMLDivElement >
67
- ) => JSX . Element
63
+ ) => JSX . Element ;
68
64
69
65
const DatePickerElement = forwardRef ( function DatePickerElement <
70
66
TFieldValues extends FieldValues = FieldValues ,
@@ -87,23 +83,23 @@ const DatePickerElement = forwardRef(function DatePickerElement<
87
83
inputRef,
88
84
transform,
89
85
...rest
90
- } = props
86
+ } = props ;
91
87
92
- const adapter = useLocalizationContext ( )
88
+ const adapter = useLocalizationContext ( ) ;
93
89
94
- const errorMsgFn = useFormError ( )
95
- const customErrorFn = parseError || errorMsgFn
90
+ const errorMsgFn = useFormError ( ) ;
91
+ const customErrorFn = parseError || errorMsgFn ;
96
92
97
93
const errorMessages = {
98
94
...defaultErrorMessages ,
99
95
...overwriteErrorMessages ,
100
- }
96
+ } ;
101
97
102
98
const rulesTmp = {
103
99
...rules ,
104
100
...( required &&
105
101
! rules . required && {
106
- required : ' This field is required' ,
102
+ required : " This field is required" ,
107
103
} ) ,
108
104
validate : {
109
105
internal : ( value : TValue | null ) => {
@@ -116,54 +112,54 @@ const DatePickerElement = forwardRef(function DatePickerElement<
116
112
disableFuture : Boolean ( rest . disableFuture ) ,
117
113
minDate : rest . minDate ,
118
114
maxDate : rest . maxDate ,
119
- timezone : rest . timezone ?? getTimezone ( adapter , value ) ?? 'default' ,
120
115
} ,
116
+ timezone : rest . timezone ?? getTimezone ( adapter , value ) ?? "default" ,
121
117
value,
122
118
adapter,
123
- } )
124
- return internalError == null || errorMessages [ internalError ]
119
+ } ) ;
120
+ return internalError == null || errorMessages [ internalError ] ;
125
121
} ,
126
122
...rules . validate ,
127
123
} ,
128
- }
124
+ } ;
129
125
130
126
const {
131
127
field,
132
- fieldState : { error} ,
128
+ fieldState : { error } ,
133
129
} = useController ( {
134
130
name,
135
131
control,
136
132
rules : rulesTmp ,
137
133
disabled : rest . disabled ,
138
134
defaultValue : null as PathValue < TFieldValues , TName > ,
139
- } )
135
+ } ) ;
140
136
141
- const { value, onChange} = useTransform < TFieldValues , TName , TValue | null > ( {
137
+ const { value, onChange } = useTransform < TFieldValues , TName , TValue | null > ( {
142
138
value : field . value ,
143
139
onChange : field . onChange ,
144
140
transform : {
145
141
input :
146
- typeof transform ?. input === ' function'
142
+ typeof transform ?. input === " function"
147
143
? transform . input
148
144
: ( newValue ) => {
149
- return newValue && typeof newValue === ' string'
145
+ return newValue && typeof newValue === " string"
150
146
? ( adapter . utils . date ( newValue ) as unknown as TValue ) // need to see if this works for all localization adaptors
151
- : newValue
147
+ : newValue ;
152
148
} ,
153
149
output :
154
- typeof transform ?. output === ' function'
150
+ typeof transform ?. output === " function"
155
151
? transform . output
156
152
: ( newValue ) => newValue ,
157
153
} ,
158
- } )
154
+ } ) ;
159
155
160
- const handleInputRef = useForkRef ( field . ref , inputRef )
156
+ const handleInputRef = useForkRef ( field . ref , inputRef ) ;
161
157
162
158
const errorMessage = error
163
- ? typeof customErrorFn === ' function'
159
+ ? typeof customErrorFn === " function"
164
160
? customErrorFn ( error )
165
161
: error . message
166
- : null
162
+ : null ;
167
163
168
164
return (
169
165
< DatePicker
@@ -173,15 +169,15 @@ const DatePickerElement = forwardRef(function DatePickerElement<
173
169
ref = { ref }
174
170
inputRef = { handleInputRef }
175
171
onClose = { ( ...args ) => {
176
- field . onBlur ( )
172
+ field . onBlur ( ) ;
177
173
if ( rest . onClose ) {
178
- rest . onClose ( ...args )
174
+ rest . onClose ( ...args ) ;
179
175
}
180
176
} }
181
177
onChange = { ( newValue , context ) => {
182
- onChange ( newValue , context )
183
- if ( typeof rest . onChange === ' function' ) {
184
- rest . onChange ( newValue , context )
178
+ onChange ( newValue , context ) ;
179
+ if ( typeof rest . onChange === " function" ) {
180
+ rest . onChange ( newValue , context ) ;
185
181
}
186
182
} }
187
183
slotProps = { {
@@ -190,9 +186,9 @@ const DatePickerElement = forwardRef(function DatePickerElement<
190
186
...inputProps ,
191
187
required,
192
188
onBlur : ( event ) => {
193
- field . onBlur ( )
194
- if ( typeof inputProps ?. onBlur === ' function' ) {
195
- inputProps . onBlur ( event )
189
+ field . onBlur ( ) ;
190
+ if ( typeof inputProps ?. onBlur === " function" ) {
191
+ inputProps . onBlur ( event ) ;
196
192
}
197
193
} ,
198
194
error : ! ! errorMessage ,
@@ -206,7 +202,7 @@ const DatePickerElement = forwardRef(function DatePickerElement<
206
202
} ,
207
203
} }
208
204
/>
209
- )
210
- } )
211
- DatePickerElement . displayName = ' DatePickerElement'
212
- export default DatePickerElement as DatePickerElementComponent
205
+ ) ;
206
+ } ) ;
207
+ DatePickerElement . displayName = " DatePickerElement" ;
208
+ export default DatePickerElement as DatePickerElementComponent ;
0 commit comments