import { action, assert, computed, pattern, TESTS, Writable, } from "commonfabric"; import { afterRenderBranch, lateVDOMBranch } from "./subject.tsx"; export default pattern(() => { const phase = new Writable("initial"); const reachLate = action(() => phase.set("late")); const advanceAfterRender = action(() => phase.set("after-render")); const view = (
{computed(() => { if (phase.get() === "late") { return {computed(() => lateVDOMBranch())}; } if (phase.get() === "after-render") { return {computed(() => afterRenderBranch())}; } return null; })}
); const isAfterRender = assert(() => phase.get() === "after-render"); return { [TESTS]: [ { action: reachLate }, { render: view }, { action: advanceAfterRender }, { assertion: isAfterRender }, ], }; });