Files
rio/frontend/code/components/website.ts
2024-06-18 21:33:29 +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;
}
}
}