Spaces:
Sleeping
Sleeping
File size: 880 Bytes
149698e | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | import { useState, useCallback } from 'react';
import type { ScanPreset } from '@icc/shared';
export function useScanDateRange() {
const [preset, setPreset] = useState<ScanPreset>('today');
const [startDate, setStartDate] = useState<string>('');
const [endDate, setEndDate] = useState<string>('');
const selectPreset = useCallback((p: ScanPreset) => {
setPreset(p);
if (p !== 'custom') {
setStartDate('');
setEndDate('');
}
}, []);
const setCustomRange = useCallback((start: string, end: string) => {
setPreset('custom');
setStartDate(start);
setEndDate(end);
}, []);
const isValid = preset !== 'custom' || (startDate !== '' && endDate !== '' && startDate <= endDate);
return {
preset,
startDate,
endDate,
setPreset: selectPreset,
setStartDate,
setEndDate,
setCustomRange,
isValid,
};
}
|