apiCreateIf.ts 468 B

123456789101112131415161718
  1. import { type BlockFn, DynamicFragment } from './block'
  2. import { renderEffect } from './renderEffect'
  3. export function createIf(
  4. condition: () => any,
  5. b1: BlockFn,
  6. b2?: BlockFn,
  7. once?: boolean,
  8. // hydrationNode?: Node,
  9. ): DynamicFragment {
  10. const frag = __DEV__ ? new DynamicFragment('if') : new DynamicFragment()
  11. if (once) {
  12. frag.update(condition() ? b1 : b2)
  13. } else {
  14. renderEffect(() => frag.update(condition() ? b1 : b2))
  15. }
  16. return frag
  17. }