@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
JavaScript
;
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