From fe1cfc230b236688db14f184197e544db59c066a Mon Sep 17 00:00:00 2001 From: Frank Wallis Date: Mon, 28 Jan 2019 19:07:09 +0000 Subject: [PATCH 1/2] update react-datepicker typings to use class instead of const and expose instance methods --- types/react-datepicker/index.d.ts | 9 ++++++++- types/react-datepicker/react-datepicker-tests.tsx | 13 ++++++++++++- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/types/react-datepicker/index.d.ts b/types/react-datepicker/index.d.ts index e2870092dc..4ba65f420e 100644 --- a/types/react-datepicker/index.d.ts +++ b/types/react-datepicker/index.d.ts @@ -127,5 +127,12 @@ export interface ReactDatePickerProps { withPortal?: boolean; yearDropdownItemNumber?: number; } -declare const ReactDatePicker: React.ClassicComponentClass; + +declare class ReactDatePicker extends React.Component { + readonly setBlur: () => void; + readonly setFocus: () => void; + readonly setOpen: (open: boolean) => void; + readonly isCalendarOpen: () => boolean; +} + export default ReactDatePicker; diff --git a/types/react-datepicker/react-datepicker-tests.tsx b/types/react-datepicker/react-datepicker-tests.tsx index 5e913be496..9486d043eb 100644 --- a/types/react-datepicker/react-datepicker-tests.tsx +++ b/types/react-datepicker/react-datepicker-tests.tsx @@ -76,7 +76,8 @@ const defaultLocale = getDefaultLocale(); popperProps={{}} preventOpenOnFocus previousMonthButtonLabel="" - readOnly + readOnly + ref={handleRef} renderCustomHeader={({ date, changeYear, @@ -119,3 +120,13 @@ const defaultLocale = getDefaultLocale();
; + +function handleRef(ref: DatePicker | null) { + if (ref) { + ref.setBlur(); + ref.setFocus(); + if (ref.isCalendarOpen()) { + ref.setOpen(false); + } + } +} From bade23979671bfca4dfb83c4d46cf72c431b85da Mon Sep 17 00:00:00 2001 From: Frank Wallis Date: Sat, 9 Feb 2019 08:50:39 +0000 Subject: [PATCH 2/2] add skipSetBlur parameter to setOpen --- types/react-datepicker/index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/types/react-datepicker/index.d.ts b/types/react-datepicker/index.d.ts index 4ba65f420e..ce7ebcfab9 100644 --- a/types/react-datepicker/index.d.ts +++ b/types/react-datepicker/index.d.ts @@ -131,7 +131,7 @@ export interface ReactDatePickerProps { declare class ReactDatePicker extends React.Component { readonly setBlur: () => void; readonly setFocus: () => void; - readonly setOpen: (open: boolean) => void; + readonly setOpen: (open: boolean, skipSetBlur?: boolean) => void; readonly isCalendarOpen: () => boolean; }