Files
rio/frontend/code/components/website.ts
2024-09-26 19:37:51 +02:00

30 lines
732 B
TypeScript

import { ComponentBase, ComponentState } from "./componentBase";
export type WebsiteState = ComponentState & {
_type_: "Website-builtin";
url?: string;
};
export class WebsiteComponent extends ComponentBase {
state: Required<WebsiteState>;
element: HTMLIFrameElement;
createElement(): HTMLElement {
return document.createElement("iframe");
}
updateElement(
deltaState: WebsiteState,
latentComponents: Set<ComponentBase>
): void {
super.updateElement(deltaState, latentComponents);
if (
deltaState.url !== undefined &&
deltaState.url !== this.element.src
) {
this.element.src = deltaState.url;
}
}
}