UNPKG

@dark-engine/core

Version:

The lightweight and powerful UI rendering engine without dependencies and written in TypeScript (Browser, Node.js, Android, iOS, Windows, Linux, macOS)

19 lines (18 loc) 889 B
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); exports.useSyncExternalStore = void 0; const utils_1 = require('../utils'); const use_layout_effect_1 = require('../use-layout-effect'); const internal_1 = require('../internal'); const use_state_1 = require('../use-state'); function useSyncExternalStore(subscribe, getSnapshot, getServerSnapshot) { const { isSSR } = (0, internal_1.__useSSR)(); if (isSSR && !(0, utils_1.detectIsFunction)(getServerSnapshot)) { (0, utils_1.illegal)('getServerSnapshot was not found!'); } const [state, setState] = (0, use_state_1.useState)(isSSR ? getServerSnapshot() : getSnapshot()); (0, use_layout_effect_1.useLayoutEffect)(() => subscribe(() => setState(getSnapshot())), [getSnapshot]); return state; } exports.useSyncExternalStore = useSyncExternalStore; //# sourceMappingURL=use-sync-external-store.js.map