UNPKG

@payfit/unity-components

Version:

50 lines (49 loc) 1.57 kB
import { createContext as e, useCallback as t, useContext as n, useRef as r, useState as i } from "react"; import { jsx as a } from "react/jsx-runtime"; import { useId as o } from "react-aria/useId"; import { useOverlayTriggerState as s } from "react-stately/useOverlayTriggerState"; import { useOverlayTrigger as c } from "react-aria/useOverlayTrigger"; //#region src/components/task-menu/TaskMenu.context.tsx var l = e({ currentTask: void 0, setCurrentTask: void 0, toggleTaskGroup: void 0, expandedTaskGroup: void 0, taskMenuId: "", taskMenuContentId: "", state: null, triggerRef: { current: null }, overlayRef: { current: null }, triggerProps: {}, overlayProps: {} }); function u({ children: e }) { let n = o(), [u, d] = i(null), [f, p] = i(null), [m, h] = i(null), g = s({}), _ = r(null), v = r(null), { triggerProps: y, overlayProps: b } = c({ type: "dialog" }, g, _), x = `task-menu-${n}`, S = t((e, t) => { d(e), h(t ?? null), p(t ?? null); }, []); return /* @__PURE__ */ a(l.Provider, { value: { currentTask: u, setCurrentTask: S, toggleTaskGroup: (e) => { e === m ? (h(null), p(null)) : (h(e), p(f === e ? null : e)); }, expandedTaskGroup: f, taskMenuId: n, taskMenuContentId: x, state: g, triggerRef: _, overlayRef: v, triggerProps: y, overlayProps: b }, children: e }); } function d() { let e = n(l); if (!e) throw Error("useTaskMenuContext must be used within an TaskMenuProvider"); return e; } //#endregion export { l as TaskMenuContext, u as TaskMenuProvider, d as useTaskMenuContext };