@brightsoftware/date-np
Version:
Simple & minimal Nepali date picker that just works.
129 lines (128 loc) • 6.94 kB
JavaScript
import { jsxs as u, jsx as n } from "react/jsx-runtime";
import { cn as t } from "../../../utils/clsx.js";
import { useTimePicker as je } from "../hooks/useTimePicker.js";
import { TimeColumn as m } from "./time-column.js";
import { useRef as Be, useEffect as Se } from "react";
const ye = ({ className: Pe, ...e }) => {
var c, C, N, d, P, f, v, b, h, V, w, x, g, j, B, S, D, H, E, I, T, y, M, k, W, L, R, A, q, z, F, G, J, K, O, Q, U, X, Y, Z, _, $, p, ee, ae, se, ne, le, te, me, oe, ue, re, ie, ce, Ce;
const r = Be(null), {
timePickerState: fe,
incrementHours: ve,
decrementHours: be,
incrementMinutes: he,
decrementMinutes: Ve,
incrementSeconds: we,
decrementSeconds: xe,
togglePeriod: i
} = je(), { selectedTime: s, format: l, shouldInclude: o } = fe;
Se(() => {
const a = r.current;
if (!a) return;
const Ne = (de) => {
de.preventDefault(), de.stopPropagation();
};
return a.addEventListener("wheel", Ne, { passive: !1 }), () => {
a.removeEventListener("wheel", Ne);
};
}, []);
const ge = (a) => {
a.preventDefault(), a.stopPropagation(), a.nativeEvent && (a.nativeEvent.preventDefault(), a.nativeEvent.stopImmediatePropagation());
};
return /* @__PURE__ */ u(
"div",
{
ref: r,
className: t("flex flex-col items-center space-y-4", Pe),
onWheel: ge,
children: [
/* @__PURE__ */ u("div", { className: "flex justify-between w-full items-center", children: [
/* @__PURE__ */ n("div", { className: t("text-lg font-semibold text-gray-900", e.titleClassName), children: e.titleText || "Select Time" }),
/* @__PURE__ */ n(
"button",
{
onClick: (a) => e.onSave && e.onSave(s),
className: t(
"px-4 py-2 bg-blue-500 text-white rounded hover:bg-blue-600 focus:outline-none focus:ring-2 focus:ring-blue-400",
e.buttonClassname
),
children: "Save"
}
)
] }),
/* @__PURE__ */ u("div", { className: t("flex items-center space-x-8", e.columnsContainerClassName), children: [
o.hours && /* @__PURE__ */ n(
m,
{
label: ((C = (c = e.timeColumnProps) == null ? void 0 : c.hours) == null ? void 0 : C.label) || "Hours",
value: s.hours,
onIncrement: ve,
onDecrement: be,
format: l,
isHours: !0,
className: (d = (N = e.timeColumnProps) == null ? void 0 : N.hours) == null ? void 0 : d.className,
labelClassName: (f = (P = e.timeColumnProps) == null ? void 0 : P.hours) == null ? void 0 : f.labelClassName,
currentValueClassName: (b = (v = e.timeColumnProps) == null ? void 0 : v.hours) == null ? void 0 : b.currentValueClassName,
adjacentValueClassName: (V = (h = e.timeColumnProps) == null ? void 0 : h.hours) == null ? void 0 : V.adjacentValueClassName,
arrowButtonClassName: (x = (w = e.timeColumnProps) == null ? void 0 : w.hours) == null ? void 0 : x.arrowButtonClassName,
columnContainerClassName: (j = (g = e.timeColumnProps) == null ? void 0 : g.hours) == null ? void 0 : j.columnContainerClassName
}
),
o.minutes && /* @__PURE__ */ n(
m,
{
label: ((S = (B = e.timeColumnProps) == null ? void 0 : B.minutes) == null ? void 0 : S.label) || "Minutes",
value: s.minutes,
onIncrement: he,
onDecrement: Ve,
format: l,
isHours: !1,
className: (H = (D = e.timeColumnProps) == null ? void 0 : D.minutes) == null ? void 0 : H.className,
labelClassName: (I = (E = e.timeColumnProps) == null ? void 0 : E.minutes) == null ? void 0 : I.labelClassName,
currentValueClassName: (y = (T = e.timeColumnProps) == null ? void 0 : T.minutes) == null ? void 0 : y.currentValueClassName,
adjacentValueClassName: (k = (M = e.timeColumnProps) == null ? void 0 : M.minutes) == null ? void 0 : k.adjacentValueClassName,
arrowButtonClassName: (L = (W = e.timeColumnProps) == null ? void 0 : W.minutes) == null ? void 0 : L.arrowButtonClassName,
columnContainerClassName: (A = (R = e.timeColumnProps) == null ? void 0 : R.minutes) == null ? void 0 : A.columnContainerClassName
}
),
o.seconds && /* @__PURE__ */ n(
m,
{
label: ((z = (q = e.timeColumnProps) == null ? void 0 : q.seconds) == null ? void 0 : z.label) || "Seconds",
value: s.seconds,
onIncrement: we,
onDecrement: xe,
format: l,
isHours: !1,
className: (G = (F = e.timeColumnProps) == null ? void 0 : F.seconds) == null ? void 0 : G.className,
labelClassName: (K = (J = e.timeColumnProps) == null ? void 0 : J.seconds) == null ? void 0 : K.labelClassName,
currentValueClassName: (Q = (O = e.timeColumnProps) == null ? void 0 : O.seconds) == null ? void 0 : Q.currentValueClassName,
adjacentValueClassName: (X = (U = e.timeColumnProps) == null ? void 0 : U.seconds) == null ? void 0 : X.adjacentValueClassName,
arrowButtonClassName: (Z = (Y = e.timeColumnProps) == null ? void 0 : Y.seconds) == null ? void 0 : Z.arrowButtonClassName,
columnContainerClassName: ($ = (_ = e.timeColumnProps) == null ? void 0 : _.seconds) == null ? void 0 : $.columnContainerClassName
}
),
l === "am/pm" && s.period && /* @__PURE__ */ n(
m,
{
label: ((ee = (p = e.timeColumnProps) == null ? void 0 : p.period) == null ? void 0 : ee.label) || "AM/PM",
value: s.period,
onIncrement: i,
onDecrement: i,
format: l,
isHours: !1,
className: (se = (ae = e.timeColumnProps) == null ? void 0 : ae.period) == null ? void 0 : se.className,
labelClassName: (le = (ne = e.timeColumnProps) == null ? void 0 : ne.period) == null ? void 0 : le.labelClassName,
currentValueClassName: (me = (te = e.timeColumnProps) == null ? void 0 : te.period) == null ? void 0 : me.currentValueClassName,
adjacentValueClassName: (ue = (oe = e.timeColumnProps) == null ? void 0 : oe.period) == null ? void 0 : ue.adjacentValueClassName,
arrowButtonClassName: (ie = (re = e.timeColumnProps) == null ? void 0 : re.period) == null ? void 0 : ie.arrowButtonClassName,
columnContainerClassName: (Ce = (ce = e.timeColumnProps) == null ? void 0 : ce.period) == null ? void 0 : Ce.columnContainerClassName
}
)
] })
]
}
);
};
export {
ye as TimePickerBody
};