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)

27 lines (26 loc) 857 B
import { __useCursor as useCursor, __useSSR as useSSR } from '../internal'; import { useLayoutEffect } from '../use-layout-effect'; import { detectIsTagVirtualNode } from '../view'; import { collectElements } from '../walk'; import { component } from '../component'; import { platform } from '../platform'; const $$shadow = Symbol('shadow'); const Shadow = component( ({ isOpen, slot }) => { const { isSSR } = useSSR(); const cursor = useCursor(); useLayoutEffect(() => { if (isSSR) return; const fibers = collectElements(cursor, x => x); for (const fiber of fibers) { if (detectIsTagVirtualNode(fiber.inst)) { platform.toggle(fiber.el, isOpen); } } }, [isOpen]); return slot; }, { token: $$shadow, displayName: 'Shadow' }, ); export { Shadow }; //# sourceMappingURL=shadow.js.map