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,
  };
}