@brightsoftware/date-np
Version:
Simple & minimal Nepali date picker that just works.
38 lines (37 loc) • 1.38 kB
JavaScript
import { jsx as i, jsxs as u } from "react/jsx-runtime";
import { useRef as a, useEffect as l } from "react";
import { cn as f } from "../../utils/clsx.js";
import { TimePickerProvider as p, useTimePicker as k } from "./hooks/useTimePicker.js";
import { TimePickerInput as P } from "./components/time-picker-input.js";
import { TimePickerBody as v } from "./components/time-picker-body.js";
const T = ({
className: r,
shouldShowInput: t = !0,
inputProps: s,
onTimeChange: m
}) => {
const { timePickerState: e, setVisibility: c } = k(), o = a(null);
return l(() => {
const n = (d) => {
o.current && !o.current.contains(d.target) && c(!1);
};
return e.isVisible && document.addEventListener("mousedown", n), () => {
document.removeEventListener("mousedown", n);
};
}, [e.isVisible, c]), l(() => {
m && m(e.selectedTime);
}, [e.selectedTime, m]), /* @__PURE__ */ u("div", { className: f("relative", r), ref: o, children: [
t && /* @__PURE__ */ i(P, { ...s }),
e.isVisible && /* @__PURE__ */ i("div", { className: f(
"absolute z-50 mt-2",
t ? "top-full left-0" : "top-0 left-0"
), children: /* @__PURE__ */ i(v, {}) })
] });
}, L = ({
format: r = "am/pm",
defaultTime: t,
...s
}) => /* @__PURE__ */ i(p, { format: r, defaultTime: t, children: /* @__PURE__ */ i(T, { ...s }) });
export {
L as TimePicker
};