diff --git a/types/react-datepicker/index.d.ts b/types/react-datepicker/index.d.ts index e2870092dc..ce7ebcfab9 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, skipSetBlur?: 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); + } + } +}