From a012ca3af167d0247ed96921c3ef6a552decee73 Mon Sep 17 00:00:00 2001 From: Jake Boone Date: Tue, 11 Dec 2018 09:40:17 -0700 Subject: [PATCH] [react-datepicker] Exported locale functions and added tests --- types/react-datepicker/index.d.ts | 36 +++--- .../react-datepicker-tests.tsx | 118 ++++++++++++++++-- 2 files changed, 131 insertions(+), 23 deletions(-) diff --git a/types/react-datepicker/index.d.ts b/types/react-datepicker/index.d.ts index e727155520..5f07b253f3 100644 --- a/types/react-datepicker/index.d.ts +++ b/types/react-datepicker/index.d.ts @@ -15,6 +15,10 @@ import * as React from "react"; import * as Popper from "popper.js"; +export function registerLocale(localeName: string, localeData: {}): void; +export function setDefaultLocale(localeName: string): void; +export function getDefaultLocale(): string; + export interface ReactDatePickerProps { adjustDateOnChange?: boolean; allowSameDay?: boolean; @@ -24,6 +28,7 @@ export interface ReactDatePickerProps { calendarContainer?(props: { children: React.ReactNode[] }): React.ReactNode; children?: React.ReactNode; className?: string; + clearButtonTitle?: string; customInput?: React.ReactNode; customInputRef?: string; dateFormat?: string | string[]; @@ -38,6 +43,7 @@ export interface ReactDatePickerProps { filterDate?(date: Date): boolean; fixedHeight?: boolean; forceShowMonthNavigation?: boolean; + formatWeekDay?(date: Date): string; formatWeekNumber?(date: Date): string | number; highlightDates?: Date[]; id?: string; @@ -53,18 +59,19 @@ export interface ReactDatePickerProps { minTime?: Date; monthsShown?: number; name?: string; + nextMonthButtonLabel?: string; onBlur?(event: React.FocusEvent): void; onChange(date: Date | null, event: React.SyntheticEvent | undefined): void; onChangeRaw?(event: React.FocusEvent): void; onClickOutside?(event: React.MouseEvent): void; onFocus?(event: React.FocusEvent): void; + onInputClick?(): void; + onInputError?(err: {code: number; msg: string}): void; onKeyDown?(event: React.KeyboardEvent): void; onMonthChange?(date: Date): void; onSelect?(date: Date, event: React.SyntheticEvent | undefined): void; onWeekSelect?(firstDayOfWeek: Date, weekNumber: string | number, event: React.SyntheticEvent | undefined): void; - onInputClick?(): void; onYearChange?(date: Date): void; - onInputError?(err: {code: number; msg: string}): void; open?: boolean; openToDate?: Date; peekNextMonth?: boolean; @@ -75,7 +82,18 @@ export interface ReactDatePickerProps { popperPlacement?: string; popperProps?: {}; preventOpenOnFocus?: boolean; + previousMonthButtonLabel?: string; readOnly?: boolean; + renderCustomHeader?(params: { + date: Date; + changeYear(year: number): void; + changeMonth(month: number): void; + decreaseMonth(): void; + increaseMonth(): void; + prevMonthButtonDisabled: boolean; + nextMonthButtonDisabled: boolean; + }): React.ReactNode; + renderDayContents?(dayOfMonth: number): React.ReactNode; required?: boolean; scrollableMonthYearDropdown?: boolean; scrollableYearDropdown?: boolean; @@ -104,20 +122,6 @@ export interface ReactDatePickerProps { weekLabel?: string; withPortal?: boolean; yearDropdownItemNumber?: number; - formatWeekDay?(date: Date): string; - clearButtonTitle?: string; - previousMonthButtonLabel?: string; - nextMonthButtonLabel?: string; - renderCustomHeader?(params: { - date: Date; - changeYear(year: number): void; - changeMonth(month: number): void; - decreaseMonth(): void; - increaseMonth(): void; - prevMonthButtonDisabled: boolean; - nextMonthButtonDisabled: boolean; - }): React.ReactNode; - renderDayContents?(dayOfMonth: number): React.ReactNode; } declare const ReactDatePicker: React.ClassicComponentClass; export default ReactDatePicker; diff --git a/types/react-datepicker/react-datepicker-tests.tsx b/types/react-datepicker/react-datepicker-tests.tsx index 4a3fd93cac..b47c08ed73 100644 --- a/types/react-datepicker/react-datepicker-tests.tsx +++ b/types/react-datepicker/react-datepicker-tests.tsx @@ -1,17 +1,121 @@ import * as React from 'react'; -import DatePicker from 'react-datepicker'; +import DatePicker, { + registerLocale, + setDefaultLocale, + getDefaultLocale, +} from 'react-datepicker'; + +registerLocale('en-GB', { options: { weekStartsOn: 1 } }); +setDefaultLocale('en-GB'); +const defaultLocale = getDefaultLocale();
} + className="" + clearButtonTitle="" + customInput={} + customInputRef="" + dateFormat="" + dateFormatCalendar="" + dayClassName={date => ''} + disabled + disabledKeyboardNavigation + dropdownMode="scroll" + endDate={new Date()} + excludeDates={[new Date()]} + excludeTimes={[new Date()]} + filterDate={date => true} + fixedHeight + forceShowMonthNavigation + formatWeekDay={date => ''} + formatWeekNumber={date => 0} + highlightDates={[new Date()]} + id="" + includeDates={[new Date()]} + includeTimes={[new Date()]} + injectTimes={[new Date()]} + inline + isClearable + locale="" + maxDate={new Date()} + maxTime={new Date()} + minDate={new Date()} + minTime={new Date()} + monthsShown={1} + name="" + nextMonthButtonLabel="" + onBlur={event => null} onChange={(date: Date | null) => {}} + onChangeRaw={event => null} + onClickOutside={event => null} + onFocus={event => null} + onInputClick={() => null} + onInputError={err => err.code + err.msg} + onKeyDown={event => null} + onMonthChange={date => null} + onSelect={(date, event) => null} + onWeekSelect={(firstDayOfWeek, weekNumber, event) => null} onYearChange={(date: Date) => {}} + open + openToDate={new Date()} + peekNextMonth + placeholderText="" + popperClassName="" + popperContainer={props =>
} popperModifiers={{ flip: { - enabled: false - } + enabled: false, + }, }} - includeTimes={[new Date()]} + popperPlacement="" + popperProps={{}} + preventOpenOnFocus + previousMonthButtonLabel="" + readOnly + renderCustomHeader={({ + date, + changeYear, + changeMonth, + decreaseMonth, + increaseMonth, + prevMonthButtonDisabled, + nextMonthButtonDisabled, + }) =>
} + renderDayContents={dayOfMonth =>
} + required + scrollableMonthYearDropdown + scrollableYearDropdown + selected={new Date()} + selectsEnd + selectsStart + shouldCloseOnSelect + showDisabledMonthNavigation + showMonthDropdown + showMonthYearDropdown + showTimeSelect + showTimeSelectOnly + showWeekNumbers + showYearDropdown + startDate={new Date()} + startOpen + tabIndex={1} + timeCaption="" + timeFormat="" + timeIntervals={1} + title="" + todayButton={
} + useShortMonthInDropdown + useWeekdaysShort + value="" + weekLabel="" + withPortal + yearDropdownItemNumber={1} > -
- +
+ ;