nanobot-voice-interface/scripts/card_runtime_fixture_card.mjs
kacper 4dfb7ca3cc
Some checks failed
CI / Backend Checks (push) Failing after 36s
CI / Frontend Checks (push) Failing after 40s
feat: unify card runtime and event-driven web ui
2026-04-06 15:42:53 -04:00

24 lines
704 B
JavaScript

export function mount({ root, state, host }) {
const render = (nextState) => {
const title = typeof nextState.title === "string" ? nextState.title : "";
root.innerHTML = `<div data-fixture-title="${title}">${title}</div>`;
};
render(state);
host.setLiveContent({ phase: "mount", title: state.title ?? "" });
host.setRefreshHandler(() => {
root.dataset.refreshed = "1";
});
return {
update({ state: nextState, host: nextHost }) {
render(nextState);
nextHost.setLiveContent({ phase: "update", title: nextState.title ?? "" });
},
destroy() {
root.dataset.destroyed = "1";
root.innerHTML = "";
host.setRefreshHandler(null);
},
};
}