mirror of
https://github.com/rio-labs/rio.git
synced 2026-01-19 12:00:48 -06:00
28 lines
672 B
TypeScript
28 lines
672 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 {
|
|
if (
|
|
deltaState.url !== undefined &&
|
|
deltaState.url !== this.element.src
|
|
) {
|
|
this.element.src = deltaState.url;
|
|
}
|
|
}
|
|
}
|