Blame view

天文台pc/tianwentai-ui/node_modules/react-day-picker/src/hooks/useSelectedDays/useSelectedDays.ts 1.15 KB
bc518174   王天杨   提交两个项目文件
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
  import { useDayPicker } from 'contexts/DayPicker';
  import { useSelectMultiple } from 'contexts/SelectMultiple';
  import { useSelectRange } from 'contexts/SelectRange';
  import { useSelectSingle } from 'contexts/SelectSingle';
  import { isDayPickerMultiple } from 'types/DayPickerMultiple';
  import { isDayPickerRange } from 'types/DayPickerRange';
  import { isDayPickerSingle } from 'types/DayPickerSingle';
  import { DateRange } from 'types/Matchers';
  
  export type SelectedDays = Date | Date[] | DateRange | undefined;
  
  /**
   * Return the current selected days when DayPicker is in selection mode. Days
   * selected by the custom selection mode are not returned.
   *
   * This hook is meant to be used inside internal or custom components.
   *
   */
  export function useSelectedDays(): SelectedDays {
    const dayPicker = useDayPicker();
    const single = useSelectSingle();
    const multiple = useSelectMultiple();
    const range = useSelectRange();
  
    const selectedDays = isDayPickerSingle(dayPicker)
      ? single.selected
      : isDayPickerMultiple(dayPicker)
        ? multiple.selected
        : isDayPickerRange(dayPicker)
          ? range.selected
          : undefined;
  
    return selectedDays;
  }