vue3-core/packages/runtime-vapor/src/apiCreateIf.ts

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

19 lines
482 B
TypeScript
Raw Normal View History

import { type Block, type BlockFn, DynamicFragment } from './block'
2024-12-14 20:37:43 +08:00
import { renderEffect } from './renderEffect'
2024-12-11 11:50:17 +08:00
export function createIf(
condition: () => any,
b1: BlockFn,
b2?: BlockFn,
once?: boolean,
// hydrationNode?: Node,
): Block {
2024-12-14 20:37:43 +08:00
if (once) {
return condition() ? b1() : b2 ? b2() : []
2024-12-14 20:37:43 +08:00
} else {
const frag = __DEV__ ? new DynamicFragment('if') : new DynamicFragment()
2024-12-14 20:37:43 +08:00
renderEffect(() => frag.update(condition() ? b1 : b2))
return frag
2024-12-14 20:37:43 +08:00
}
2024-12-11 11:50:17 +08:00
}