UNPKG

@brightsoftware/date-np

Version:

Simple & minimal Nepali date picker that just works.

92 lines (91 loc) 3.48 kB
import { type Dispatch, type SetStateAction } from "react"; import { NepaliDate } from "../NepaliDate"; type tpickerContextType = { pickerState: { onSelect?: (selectedDate: Date | NepaliDate) => void; minDate?: Date | NepaliDate; maxDate?: Date | NepaliDate; today: Date; isVisible: boolean; locale: "en" | "ne"; /** * The Date that is selected * @default null */ selectedDate: Date | NepaliDate | null; /** * The default date used as a label when no valid date is selected */ defaultDate?: Date | NepaliDate; /** * Month that is currently in view, * not always the selected Date's month. */ activeMonth: number; /** * Year that is in view not always the selected * year's month. */ activeYear: number; mode: "date" | "month" | "year"; }; setPickerState: Dispatch<SetStateAction<tpickerContextType["pickerState"]>>; }; declare const usePicker: () => { updatePickerDay: (day: Date | NepaliDate, programatic?: boolean) => void; updatePickerMonth: (month: number) => void; togglePickerMode: (toggleIf: tpickerContextType["pickerState"]["mode"], defaultMode: tpickerContextType["pickerState"]["mode"]) => void; updatePickerMode: (newMode: tpickerContextType["pickerState"]["mode"]) => void; updatePickerYear: (newYear: tpickerContextType["pickerState"]["activeYear"]) => void; changePickerLocale: (newLocale: "en" | "ne") => void; updatePickerVisiblity: (newVis: boolean) => void; getEffectiveMinDate: () => Date; getEffectiveMaxDate: () => Date; isDateInRange: (date: Date | NepaliDate) => boolean; canNavigateToPreviousMonth: () => boolean; canNavigateToNextMonth: () => boolean; canNavigateToPreviousYear: () => boolean; canNavigateToNextYear: () => boolean; resetToOriginalState: () => void; getDisplayDate: () => Date | NepaliDate | null; setMinDate: (newMinDate: Date | NepaliDate) => void; setMaxDate: (newMaxDate: Date | NepaliDate) => void; pickerState: { onSelect?: (selectedDate: Date | NepaliDate) => void; minDate?: Date | NepaliDate; maxDate?: Date | NepaliDate; today: Date; isVisible: boolean; locale: "en" | "ne"; /** * The Date that is selected * @default null */ selectedDate: Date | NepaliDate | null; /** * The default date used as a label when no valid date is selected */ defaultDate?: Date | NepaliDate; /** * Month that is currently in view, * not always the selected Date's month. */ activeMonth: number; /** * Year that is in view not always the selected * year's month. */ activeYear: number; mode: "date" | "month" | "year"; }; setPickerState: Dispatch<SetStateAction<tpickerContextType["pickerState"]>>; }; declare const PickerProvider: ({ children, minDate, maxDate, defaultDate, defaultLocale, onSelect, }: { children: React.ReactNode; minDate?: Date | NepaliDate; maxDate?: Date | NepaliDate; defaultDate?: Date | NepaliDate; defaultLocale?: "AD" | "BS"; onSelect?: (selectedDate: Date | NepaliDate) => void; }) => import("react/jsx-runtime").JSX.Element; export { PickerProvider, usePicker, };