diff --git a/src/index.tsx b/src/index.tsx index 456b2708..4b9cbc25 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -296,26 +296,11 @@ class SemanticDatepicker extends React.Component< format, keepOpenOnSelect, onChange, - clearOnSameDateClick, formatOptions, } = this.props; if (!newDate) { - // if clearOnSameDateClick is true (this is the default case) - // then reset the state. This is what was previously the default - // behavior, without a specific prop. - if (clearOnSameDateClick) { - this.resetState(event); - } else { - // Don't reset the state. Instead, close or keep open the - // datepicker according to the value of keepOpenOnSelect. - // Essentially, follow the default behavior of clicking a date - // but without changing the value in state. - this.setState({ - isVisible: keepOpenOnSelect, - }); - } - + this.resetState(event); return; } diff --git a/src/pickers/basic.tsx b/src/pickers/basic.tsx index f5a793ff..1dff8371 100644 --- a/src/pickers/basic.tsx +++ b/src/pickers/basic.tsx @@ -7,14 +7,18 @@ class DatePicker extends React.Component { { selectable, date }, event: React.SyntheticEvent ) => { - const { selected: selectedDate, onChange } = this.props; + const { clearOnSameDateClick, selected: selectedDate, onChange } = this.props; if (!selectable) { return; } let newDate = date; - if (selectedDate && selectedDate.getTime() === date.getTime()) { + if ( + selectedDate && + selectedDate.getTime() === date.getTime() && + clearOnSameDateClick + ) { newDate = null; } diff --git a/src/types/index.ts b/src/types/index.ts index 641648b3..384d43bf 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -99,6 +99,7 @@ export type BaseDatePickerProps = DayzedProps & { }; export interface BasicDatePickerProps extends BaseDatePickerProps { + clearOnSameDateClick?: boolean onChange: (event: React.SyntheticEvent, date: Date | null) => void; selected: Date; }