@@ -12,6 +12,7 @@ import {
12
12
DEFAULT_EXTERNAL_DATE_FORMAT ,
13
13
VALIDATION_MESSAGE ,
14
14
DEFAULT_MIN_DATE ,
15
+ type DateFormat ,
15
16
} from './constants'
16
17
import { DatePickerLocalization , EN_US } from './i18n'
17
18
import {
@@ -33,6 +34,7 @@ type BaseDatePickerProps = {
33
34
validationStatus ?: ValidationStatus
34
35
disabled ?: boolean
35
36
required ?: boolean
37
+ dateFormat ?: DateFormat
36
38
defaultValue ?: string
37
39
minDate ?: string
38
40
maxDate ?: string
@@ -57,6 +59,7 @@ export const DatePicker = ({
57
59
name,
58
60
className,
59
61
validationStatus,
62
+ dateFormat = DEFAULT_EXTERNAL_DATE_FORMAT ,
60
63
defaultValue,
61
64
disabled,
62
65
required,
@@ -68,6 +71,8 @@ export const DatePicker = ({
68
71
i18n = EN_US ,
69
72
...inputProps
70
73
} : DatePickerProps ) : React . ReactElement => {
74
+ dateFormat ??= DEFAULT_EXTERNAL_DATE_FORMAT
75
+
71
76
const datePickerEl = useRef < HTMLDivElement > ( null )
72
77
const externalInputEl = useRef < HTMLInputElement > ( null )
73
78
@@ -109,7 +114,7 @@ export const DatePicker = ({
109
114
const handleSelectDate = ( dateString : string , closeCalendar = true ) : void => {
110
115
const parsedValue = parseDateString ( dateString )
111
116
const formattedValue =
112
- parsedValue && formatDate ( parsedValue , DEFAULT_EXTERNAL_DATE_FORMAT )
117
+ parsedValue && formatDate ( parsedValue , dateFormat )
113
118
114
119
if ( parsedValue ) setInternalValue ( dateString )
115
120
if ( formattedValue ) setExternalValue ( formattedValue )
@@ -128,7 +133,7 @@ export const DatePicker = ({
128
133
setExternalValue ( value )
129
134
if ( onChange ) onChange ( value )
130
135
131
- const inputDate = parseDateString ( value , DEFAULT_EXTERNAL_DATE_FORMAT , true )
136
+ const inputDate = parseDateString ( value , dateFormat , true )
132
137
let newValue = ''
133
138
if ( inputDate && ! isDateInvalid ( value , parsedMinDate , parsedMaxDate ) ) {
134
139
newValue = formatDate ( inputDate )
@@ -181,7 +186,7 @@ export const DatePicker = ({
181
186
// calendar is closed, show it
182
187
const inputDate = parseDateString (
183
188
externalValue ,
184
- DEFAULT_EXTERNAL_DATE_FORMAT ,
189
+ dateFormat ,
185
190
true
186
191
)
187
192
@@ -347,5 +352,6 @@ export const DatePicker = ({
347
352
}
348
353
349
354
DatePicker . defaultProps = {
355
+ dateFormat : DEFAULT_EXTERNAL_DATE_FORMAT ,
350
356
minDate : DEFAULT_MIN_DATE ,
351
357
}
0 commit comments