Files
rio/frontend/code/components/scrollTarget.ts
2024-04-21 15:03:47 +02:00

29 lines
787 B
TypeScript

import { ComponentId } from '../dataModels';
import { ComponentBase, ComponentState } from './componentBase';
import { SingleContainer } from './singleContainer';
export type ScrollTargetState = ComponentState & {
_type_: 'ScrollTarget-builtin';
id?: string;
content?: ComponentId | null;
};
export class ScrollTargetComponent extends SingleContainer {
state: Required<ScrollTargetState>;
createElement(): HTMLElement {
return document.createElement('a');
}
updateElement(
deltaState: ScrollTargetState,
latentComponents: Set<ComponentBase>
): void {
this.replaceOnlyChild(latentComponents, deltaState.content);
if (deltaState.id !== undefined) {
this.element.id = deltaState.id;
}
}
}