Skip to content

Commit

Permalink
fix(DatePicker): allow locale object to be passed in to flatpickr (#7834
Browse files Browse the repository at this point in the history
)

* fix(DatePicker): allow locale object to be passed in to flatpickr

* chore(tests): update snapshots

Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
  • Loading branch information
tw15egan and kodiakhq[bot] authored Feb 19, 2021
1 parent 647ec1e commit bdf9f5c
Show file tree
Hide file tree
Showing 2 changed files with 146 additions and 125 deletions.
134 changes: 72 additions & 62 deletions packages/react/__tests__/__snapshots__/PublicAPI-test.js.snap
Original file line number Diff line number Diff line change
Expand Up @@ -2095,70 +2095,80 @@ Map {
"locale": Object {
"args": Array [
Array [
"ar",
"at",
"az",
"be",
"bg",
"bn",
"bs",
"cat",
"cs",
"cy",
"da",
"de",
"en",
"eo",
"es",
"et",
"fa",
"fi",
"fo",
"fr",
"ga",
"gr",
"he",
"hi",
"hr",
"hu",
"id",
"is",
"it",
"ja",
"ka",
"km",
"ko",
"kz",
"lt",
"lv",
"mk",
"mn",
"ms",
"my",
"nl",
"no",
"pa",
"pl",
"pt",
"ro",
"ru",
"si",
"sk",
"sl",
"sq",
"sr-cyr",
"sr",
"sv",
"th",
"tr",
"uk",
"uz",
"vn",
"zh-tw",
"zh",
Object {
"type": "object",
},
Object {
"args": Array [
Array [
"ar",
"at",
"az",
"be",
"bg",
"bn",
"bs",
"cat",
"cs",
"cy",
"da",
"de",
"en",
"eo",
"es",
"et",
"fa",
"fi",
"fo",
"fr",
"ga",
"gr",
"he",
"hi",
"hr",
"hu",
"id",
"is",
"it",
"ja",
"ka",
"km",
"ko",
"kz",
"lt",
"lv",
"mk",
"mn",
"ms",
"my",
"nl",
"no",
"pa",
"pl",
"pt",
"ro",
"ru",
"si",
"sk",
"sl",
"sq",
"sr-cyr",
"sr",
"sv",
"th",
"tr",
"uk",
"uz",
"vn",
"zh-tw",
"zh",
],
],
"type": "oneOf",
},
],
],
"type": "oneOf",
"type": "oneOfType",
},
"maxDate": Object {
"type": "string",
Expand Down
137 changes: 74 additions & 63 deletions packages/react/src/components/DatePicker/DatePicker.js
Original file line number Diff line number Diff line change
Expand Up @@ -161,68 +161,71 @@ export default class DatePicker extends Component {
/**
* The language locale used to format the days of the week, months, and numbers. The full list of supported locales can be found here https://github.com/flatpickr/flatpickr/tree/master/src/l10n
*/
locale: PropTypes.oneOf([
'ar', // Arabic
'at', // Austria
'az', // Azerbaijan
'be', // Belarusian
'bg', // Bulgarian
'bn', // Bangla
'bs', // Bosnia
'cat', // Catalan
'cs', // Czech
'cy', // Welsh
'da', // Danish
'de', // German
'en', // English
'eo', // Esperanto
'es', // Spanish
'et', // Estonian
'fa', // Persian
'fi', // Finnish
'fo', // Faroese
'fr', // French
'ga', // Gaelic
'gr', // Greek
'he', // Hebrew
'hi', // Hindi
'hr', // Croatian
'hu', // Hungarian
'id', // Indonesian
'is', // Icelandic
'it', // Italian
'ja', // Japanese
'ka', // Georgian
'km', // Khmer
'ko', // Korean
'kz', // Kazakh
'lt', // Lithuanian
'lv', // Latvian
'mk', // Macedonian
'mn', // Mongolian
'ms', // Malaysian
'my', // Burmese
'nl', // Dutch
'no', // Norwegian
'pa', // Punjabi
'pl', // Polish
'pt', // Portuguese
'ro', // Romanian
'ru', // Russian
'si', // Sinhala
'sk', // Slovak
'sl', // Slovenian
'sq', // Albanian
'sr-cyr', // Serbian Cyrillic
'sr', // Serbian
'sv', // Swedish
'th', // Thai
'tr', // Turkish
'uk', // Ukrainian
'uz', // Uzbek
'vn', // Vietnamese
'zh-tw', // Mandarin Traditional
'zh', // Mandarin
locale: PropTypes.oneOfType([
PropTypes.object,
PropTypes.oneOf([
'ar', // Arabic
'at', // Austria
'az', // Azerbaijan
'be', // Belarusian
'bg', // Bulgarian
'bn', // Bangla
'bs', // Bosnia
'cat', // Catalan
'cs', // Czech
'cy', // Welsh
'da', // Danish
'de', // German
'en', // English
'eo', // Esperanto
'es', // Spanish
'et', // Estonian
'fa', // Persian
'fi', // Finnish
'fo', // Faroese
'fr', // French
'ga', // Gaelic
'gr', // Greek
'he', // Hebrew
'hi', // Hindi
'hr', // Croatian
'hu', // Hungarian
'id', // Indonesian
'is', // Icelandic
'it', // Italian
'ja', // Japanese
'ka', // Georgian
'km', // Khmer
'ko', // Korean
'kz', // Kazakh
'lt', // Lithuanian
'lv', // Latvian
'mk', // Macedonian
'mn', // Mongolian
'ms', // Malaysian
'my', // Burmese
'nl', // Dutch
'no', // Norwegian
'pa', // Punjabi
'pl', // Polish
'pt', // Portuguese
'ro', // Romanian
'ru', // Russian
'si', // Sinhala
'sk', // Slovak
'sl', // Slovenian
'sq', // Albanian
'sr-cyr', // Serbian Cyrillic
'sr', // Serbian
'sv', // Swedish
'th', // Thai
'tr', // Turkish
'uk', // Ukrainian
'uz', // Uzbek
'vn', // Vietnamese
'zh-tw', // Mandarin Traditional
'zh', // Mandarin
]),
]),

/**
Expand Down Expand Up @@ -292,6 +295,14 @@ export default class DatePicker extends Component {
this.updateClassNames(instance);
};

let localeData;
if (typeof locale === 'object') {
let location = locale.locale ? locale.locale : 'en';
localeData = { ...l10n[location], ...locale };
} else {
localeData = l10n[locale];
}

// inputField ref might not be set in enzyme tests
if (this.inputField) {
this.cal = new flatpickr(this.inputField, {
Expand All @@ -300,7 +311,7 @@ export default class DatePicker extends Component {
mode: datePickerType,
allowInput: allowInput ?? true,
dateFormat: dateFormat,
locale: l10n[locale],
locale: localeData,
minDate: minDate,
maxDate: maxDate,
plugins: [
Expand Down

0 comments on commit bdf9f5c

Please sign in to comment.