@payfit/unity-components
Version:
50 lines (49 loc) • 1.57 kB
JavaScript
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 };