diff --git a/packages/grafana-sql/src/components/visual-query-builder/AwesomeQueryBuilder.tsx b/packages/grafana-sql/src/components/visual-query-builder/AwesomeQueryBuilder.tsx index 2f2db035813..03b2d871efb 100644 --- a/packages/grafana-sql/src/components/visual-query-builder/AwesomeQueryBuilder.tsx +++ b/packages/grafana-sql/src/components/visual-query-builder/AwesomeQueryBuilder.tsx @@ -80,7 +80,7 @@ export const widgets: Widgets = { return ( { - props?.setValue(e.format(BasicConfig.widgets.datetime.valueFormat)); + props?.setValue(e?.format(BasicConfig.widgets.datetime.valueFormat)); }} date={dateValue} /> diff --git a/packages/grafana-ui/src/components/DateTimePickers/DateTimePicker/DateTimePicker.story.tsx b/packages/grafana-ui/src/components/DateTimePickers/DateTimePicker/DateTimePicker.story.tsx index a442926564d..4fe4573db69 100644 --- a/packages/grafana-ui/src/components/DateTimePickers/DateTimePicker/DateTimePicker.story.tsx +++ b/packages/grafana-ui/src/components/DateTimePickers/DateTimePicker/DateTimePicker.story.tsx @@ -58,7 +58,9 @@ export const OnlyWorkingHoursEnabled: StoryFn = ({ label, showSeconds={showSeconds} onChange={(newValue) => { action('on change')(newValue); - setDate(newValue); + if (newValue) { + setDate(newValue); + } }} /> ); @@ -81,7 +83,9 @@ export const Basic: StoryFn = ({ label, minDate, maxDate, clearable={clearable} onChange={(newValue) => { action('on change')(newValue); - setDate(newValue); + if (newValue) { + setDate(newValue); + } }} /> ); @@ -101,7 +105,9 @@ export const Clearable: StoryFn = ({ label, showSeconds, clearable={clearable} onChange={(newValue) => { action('on change')(newValue); - setDate(newValue); + if (newValue) { + setDate(newValue); + } }} /> ); diff --git a/packages/grafana-ui/src/components/DateTimePickers/DateTimePicker/DateTimePicker.tsx b/packages/grafana-ui/src/components/DateTimePickers/DateTimePicker/DateTimePicker.tsx index a874c62cb63..4a0b12cf330 100644 --- a/packages/grafana-ui/src/components/DateTimePickers/DateTimePicker/DateTimePicker.tsx +++ b/packages/grafana-ui/src/components/DateTimePickers/DateTimePicker/DateTimePicker.tsx @@ -35,7 +35,7 @@ export interface Props { /** Input date for the component */ date?: DateTime; /** Callback for returning the selected date */ - onChange: (date: DateTime) => void; + onChange: (date?: DateTime) => void; /** label for the input field */ label?: ReactNode; /** Set the latest selectable date */ @@ -200,15 +200,10 @@ interface DateTimeCalendarProps { disabledSeconds?: () => number[]; } -interface InputProps { - label?: ReactNode; - date?: DateTime; +type InputProps = Pick & { isFullscreen: boolean; - onChange: (date: DateTime) => void; onOpen: (event: FormEvent) => void; - showSeconds?: boolean; - clearable?: boolean; -} +}; type InputState = { value: string; @@ -249,7 +244,8 @@ const DateTimeInput = React.forwardRef( const clearInternalDate = useCallback(() => { setInternalDate({ value: '', invalid: false }); - }, []); + onChange(); + }, [onChange]); const icon =