UNPKG

@progress/kendo-react-scheduler

Version:

React Scheduler brings the functionality of Outlook's Calendar to a single UI component. KendoReact Scheduler package

57 lines (56 loc) 1.91 kB
/** * @license *------------------------------------------------------------------------------------------- * Copyright © 2025 Progress Software Corporation. All rights reserved. * Licensed under commercial license. See LICENSE.md in the package root for more information *------------------------------------------------------------------------------------------- */ import * as m from "react"; import { findNextItem as l } from "../utils/index.mjs"; var _ = /* @__PURE__ */ ((E) => (E.select = "ITEMS_SELECT_SELECT", E.selectNext = "ITEMS_SELECT_SELECT_NEXT", E.selectPrev = "ITEMS_SELECT_SELECT_PREV", E.reset = "ITEMS_SELECT_RESET", E.add = "ITEMS_SELECT_ADD", E.remove = "ITEMS_SELECT_REMOVE", E))(_ || {}); const f = (E) => { const [S, t] = m.useState([]), T = m.useCallback( (e, s) => { switch (e.type) { case "ITEMS_SELECT_SELECT": if (!e.item) return; t([e.item]); break; case "ITEMS_SELECT_SELECT_NEXT": { if (!e.item || !e.item.current || !E) return; const r = l(e.item, E, e.ignoreIsAllDay, !1); r && (s.preventDefault(), t([r])); break; } case "ITEMS_SELECT_SELECT_PREV": { if (!e.item || !e.item.current || !E) return; const r = l(e.item, E, e.ignoreIsAllDay, !0); r && (s.preventDefault(), t([r])); break; } case "ITEMS_SELECT_RESET": t([]); break; case "ITEMS_SELECT_ADD": if (!e.item) return; S.some((r) => r === e.item) || t([...S, e.item]); break; case "ITEMS_SELECT_REMOVE": if (!e.item) return; t([...S.filter((r) => r !== e.item)]); break; } }, [E, S] ); return [S, T]; }; export { _ as ITEMS_SELECT_ACTION, f as useItemsSelection };