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)

30 lines (29 loc) 1.03 kB
'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); exports.Shadow = void 0; const internal_1 = require('../internal'); const use_layout_effect_1 = require('../use-layout-effect'); const view_1 = require('../view'); const walk_1 = require('../walk'); const component_1 = require('../component'); const platform_1 = require('../platform'); const $$shadow = Symbol('shadow'); const Shadow = (0, component_1.component)( ({ isOpen, slot }) => { const { isSSR } = (0, internal_1.__useSSR)(); const cursor = (0, internal_1.__useCursor)(); (0, use_layout_effect_1.useLayoutEffect)(() => { if (isSSR) return; const fibers = (0, walk_1.collectElements)(cursor, x => x); for (const fiber of fibers) { if ((0, view_1.detectIsTagVirtualNode)(fiber.inst)) { platform_1.platform.toggle(fiber.el, isOpen); } } }, [isOpen]); return slot; }, { token: $$shadow, displayName: 'Shadow' }, ); exports.Shadow = Shadow; //# sourceMappingURL=shadow.js.map