nanobot-voice-interface/scripts/card_runtime_fixture_card.mjs

25 lines
704 B
JavaScript
Raw Normal View History

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