Files
wdi-dashboard/node_modules/@chakra-ui/react-env/dist/chunk-VMD3UMGK.mjs
2024-08-16 15:06:52 +05:30

54 lines
1.6 KiB
JavaScript

'use client'
// src/env.tsx
import { useSafeLayoutEffect } from "@chakra-ui/react-use-safe-layout-effect";
import { createContext, useContext, useMemo, useReducer, useRef } from "react";
import { jsx, jsxs } from "react/jsx-runtime";
var EnvironmentContext = createContext({
getDocument() {
return document;
},
getWindow() {
return window;
}
});
EnvironmentContext.displayName = "EnvironmentContext";
function useEnvironment({ defer } = {}) {
const [, forceUpdate] = useReducer((c) => c + 1, 0);
useSafeLayoutEffect(() => {
if (!defer)
return;
forceUpdate();
}, [defer]);
return useContext(EnvironmentContext);
}
function EnvironmentProvider(props) {
const { children, environment: environmentProp, disabled } = props;
const ref = useRef(null);
const context = useMemo(() => {
if (environmentProp)
return environmentProp;
return {
getDocument: () => {
var _a, _b;
return (_b = (_a = ref.current) == null ? void 0 : _a.ownerDocument) != null ? _b : document;
},
getWindow: () => {
var _a, _b;
return (_b = (_a = ref.current) == null ? void 0 : _a.ownerDocument.defaultView) != null ? _b : window;
}
};
}, [environmentProp]);
const showSpan = !disabled || !environmentProp;
return /* @__PURE__ */ jsxs(EnvironmentContext.Provider, { value: context, children: [
children,
showSpan && /* @__PURE__ */ jsx("span", { id: "__chakra_env", hidden: true, ref })
] });
}
EnvironmentProvider.displayName = "EnvironmentProvider";
export {
useEnvironment,
EnvironmentProvider
};
//# sourceMappingURL=chunk-VMD3UMGK.mjs.map