Files
rio/frontend/code/components/highLevelComponent.ts
2024-06-23 13:41:03 +02:00

27 lines
782 B
TypeScript

import { ComponentBase, ComponentState } from './componentBase';
import { ComponentId } from '../dataModels';
export type HighLevelComponentState = ComponentState & {
_type_: 'HighLevelComponent-builtin';
_child_?: ComponentId;
};
export class HighLevelComponent extends ComponentBase {
state: Required<HighLevelComponentState>;
createElement(): HTMLElement {
let element = document.createElement('div');
element.classList.add('rio-high-level-component');
return element;
}
updateElement(
deltaState: HighLevelComponentState,
latentComponents: Set<ComponentBase>
): void {
super.updateElement(deltaState, latentComponents);
this.replaceOnlyChild(latentComponents, deltaState._child_);
}
}