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