UNPKG

@jk-core/components

Version:
55 lines (43 loc) 1.28 kB
import { CalendarView } from '../type'; interface UseDateSelectProps { viewDate: Date; setViewDate: (date: Date) => void; method: CalendarView; setSelectMode:(mode:CalendarView) => void; onChange: (date: Date, method?: CalendarView) => void; setView:(view:CalendarView)=>void; } const useDateSelect = ({ viewDate, setViewDate, onChange, setSelectMode, method, setView, }: UseDateSelectProps) => { const min = new Date(2000, 0, 1); const max = new Date(2099, 11, 31); const onDayClick = (day: Date) => { if (day < min || day > max) { return; } setViewDate(day); setView('day'); onChange(day, 'day'); }; const onMonthClick = (month:number) => { const newDate = new Date(viewDate.getFullYear(), month, 1); setViewDate(newDate); if (method !== 'month') setSelectMode(method); if (method === 'month') { setView('month'); onChange(newDate, 'month'); } }; const onYearClick = (year:number) => { const newDate = new Date(year, 0, 1); setViewDate(newDate); if (method !== 'year') setSelectMode(method); if (method === 'year') { setView('year'); onChange(newDate, 'year'); } }; return { onDayClick, onMonthClick, onYearClick }; }; export default useDateSelect;