UNPKG

@yamada-ui/react

Version:

React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion

50 lines (46 loc) 1.8 kB
"use client"; const require_rolldown_runtime = require('../../_virtual/rolldown_runtime.cjs'); const require_utils_index = require('../../utils/index.cjs'); let react = require("react"); react = require_rolldown_runtime.__toESM(react); let react_jsx_runtime = require("react/jsx-runtime"); react_jsx_runtime = require_rolldown_runtime.__toESM(react_jsx_runtime); //#region src/core/system/environment-provider.tsx const defaultEnvironment = { getDocument: () => document, getRootNode: () => document, getWindow: () => window }; const EnvironmentContext = (0, react.createContext)(defaultEnvironment); const EnvironmentProvider = ({ children, value }) => { const ref = (0, react.useRef)(null); const getRootNode = (0, react.useCallback)(() => { return (0, require_utils_index.utils_exports.runIfFn)(value) ?? ref.current?.getRootNode() ?? document; }, [value, ref]); return /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(EnvironmentContext, { value: (0, react.useMemo)(() => { if ((0, require_utils_index.utils_exports.createdDom)()) return { getDocument: () => (0, require_utils_index.utils_exports.getDocument)(getRootNode()), getRootNode, getWindow: () => (0, require_utils_index.utils_exports.getWindow)(getRootNode()) }; else return { getDocument: () => void 0, getRootNode: () => void 0, getWindow: () => void 0 }; }, [getRootNode]), children: [children, !value ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)("span", { ref, hidden: true }) : null] }); }; const useEnvironment = () => { return (0, react.use)(EnvironmentContext); }; //#endregion exports.EnvironmentProvider = EnvironmentProvider; exports.defaultEnvironment = defaultEnvironment; exports.useEnvironment = useEnvironment; //# sourceMappingURL=environment-provider.cjs.map