mapcomplete/UI/Base/ToSvelte.svelte

24 lines
528 B
Svelte
Raw Normal View History

<script lang="ts">
2023-03-28 05:13:48 +02:00
import BaseUIElement from "../BaseUIElement.js";
import { onDestroy, onMount } from "svelte";
2023-03-28 05:13:48 +02:00
export let construct: BaseUIElement | (() => BaseUIElement);
let elem: HTMLElement;
let html: HTMLElement;
onMount(() => {
2023-03-28 05:13:48 +02:00
const uiElem = typeof construct === "function"
? construct() : construct;
html =uiElem?.ConstructElement();
if (html !== undefined) {
elem.replaceWith(html);
}
});
onDestroy(() => {
html?.remove();
});
2023-02-03 14:59:08 +01:00
</script>
2023-02-03 14:59:08 +01:00
<span bind:this={elem} />