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 },
],
};
});