%PDF- %PDF-
Direktori : /var/www/html/node_modules/next/dist/shared/lib/ |
Current File : /var/www/html/node_modules/next/dist/shared/lib/side-effect.js |
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = SideEffect; var _interop_require_wildcard = require("@swc/helpers/lib/_interop_require_wildcard.js").default; var _react = _interop_require_wildcard(require("react")); function SideEffect(props) { const { headManager , reduceComponentsToState } = props; function emitChange() { if (headManager && headManager.mountedInstances) { const headElements = _react.Children.toArray(Array.from(headManager.mountedInstances).filter(Boolean)); headManager.updateHead(reduceComponentsToState(headElements, props)); } } if (isServer) { var ref; headManager == null ? void 0 : (ref = headManager.mountedInstances) == null ? void 0 : ref.add(props.children); emitChange(); } useClientOnlyLayoutEffect(()=>{ var ref1; headManager == null ? void 0 : (ref1 = headManager.mountedInstances) == null ? void 0 : ref1.add(props.children); return ()=>{ var ref; headManager == null ? void 0 : (ref = headManager.mountedInstances) == null ? void 0 : ref.delete(props.children); }; }); // We need to call `updateHead` method whenever the `SideEffect` is trigger in all // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s // being rendered, we only trigger the method from the last one. // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate` // singleton in the layout effect pass, and actually trigger it in the effect pass. useClientOnlyLayoutEffect(()=>{ if (headManager) { headManager._pendingUpdate = emitChange; } return ()=>{ if (headManager) { headManager._pendingUpdate = emitChange; } }; }); useClientOnlyEffect(()=>{ if (headManager && headManager._pendingUpdate) { headManager._pendingUpdate(); headManager._pendingUpdate = null; } return ()=>{ if (headManager && headManager._pendingUpdate) { headManager._pendingUpdate(); headManager._pendingUpdate = null; } }; }); return null; } const isServer = typeof window === 'undefined'; const useClientOnlyLayoutEffect = isServer ? ()=>{} : _react.useLayoutEffect; const useClientOnlyEffect = isServer ? ()=>{} : _react.useEffect; //# sourceMappingURL=side-effect.js.map