Dashboards: WeekStart is now of type WeekStart | undefined instead of string (#101123)
* change weektype from string to WeekStart | undefined * Change to WeekStart in more places, fix lint * change in more places * More weekstart changes * fix snapshot, update betterer * keep weekstart as '' in test dashboards to make sure it doesn't break old dashboards
This commit is contained in:
@@ -7,8 +7,8 @@ import { Combobox } from '../Combobox/Combobox';
|
||||
import { ComboboxOption } from '../Combobox/types';
|
||||
|
||||
export interface Props {
|
||||
onChange: (weekStart: WeekStart) => void;
|
||||
value: string;
|
||||
onChange: (weekStart?: WeekStart) => void;
|
||||
value?: WeekStart;
|
||||
width?: number;
|
||||
autoFocus?: boolean;
|
||||
onBlur?: () => void;
|
||||
@@ -24,9 +24,9 @@ const weekStarts: ComboboxOption[] = [
|
||||
{ value: 'monday', label: 'Monday' },
|
||||
];
|
||||
|
||||
const isWeekStart = (value: string): value is WeekStart => {
|
||||
export function isWeekStart(value: string): value is WeekStart {
|
||||
return ['saturday', 'sunday', 'monday'].includes(value);
|
||||
};
|
||||
}
|
||||
|
||||
declare global {
|
||||
interface Window {
|
||||
@@ -57,13 +57,13 @@ export const WeekStartPicker = (props: Props) => {
|
||||
const onChangeWeekStart = useCallback(
|
||||
(selectable: ComboboxOption | null) => {
|
||||
if (selectable && selectable.value !== undefined) {
|
||||
onChange(selectable.value as WeekStart);
|
||||
onChange(isWeekStart(selectable.value) ? selectable.value : undefined);
|
||||
}
|
||||
},
|
||||
[onChange]
|
||||
);
|
||||
|
||||
const selected = useMemo(() => weekStarts.find((item) => item.value === value)?.value ?? null, [value]);
|
||||
const selected = useMemo(() => weekStarts.find((item) => item.value === value)?.value ?? '', [value]);
|
||||
|
||||
return (
|
||||
<Combobox
|
||||
|
||||
@@ -40,7 +40,7 @@ export { TimePickerTooltip } from './DateTimePickers/TimeRangePicker';
|
||||
export { TimeRangeLabel } from './DateTimePickers/TimeRangePicker/TimeRangeLabel';
|
||||
export { TimeOfDayPicker } from './DateTimePickers/TimeOfDayPicker';
|
||||
export { TimeZonePicker } from './DateTimePickers/TimeZonePicker';
|
||||
export { WeekStartPicker, getWeekStart, type WeekStart } from './DateTimePickers/WeekStartPicker';
|
||||
export { WeekStartPicker, getWeekStart, type WeekStart, isWeekStart } from './DateTimePickers/WeekStartPicker';
|
||||
export { DatePicker, type DatePickerProps } from './DateTimePickers/DatePicker/DatePicker';
|
||||
export {
|
||||
DatePickerWithInput,
|
||||
|
||||
Reference in New Issue
Block a user