import type { DateLib } from "./classes/DateLib.js"; import { useMulti } from "./selection/useMulti.js"; import { useRange } from "./selection/useRange.js"; import { useSingle } from "./selection/useSingle.js"; import type { DayPickerProps } from "./types/index.js"; import type { Selection } from "./types/selection.js"; /** * Determines the appropriate selection hook to use based on the selection mode * and returns the corresponding selection object. * * @template T - The type of DayPicker props. * @param props - The DayPicker props. * @param dateLib - The date utility library instance. * @returns The selection object for the specified mode, or `undefined` if no * mode is set. */ export function useSelection( props: T, dateLib: DateLib, ): Selection | undefined { const single = useSingle(props, dateLib); const multi = useMulti(props, dateLib); const range = useRange(props, dateLib); switch (props.mode) { case "single": return single; case "multiple": return multi; case "range": return range; default: return undefined; } }