cobalt/web/src/components/dialog/DialogContainer.svelte
wukko aba444ec8b
web: updated api endpoint & params, default instance override
- dialogs can be undismissable now (impossible to click away by pressing the bg behind it)
- added security warning about api override
- moved default api url to env
- added new processing settings page
2024-08-04 00:43:24 +06:00

38 lines
912 B
Svelte

<script lang="ts">
import { tick } from "svelte";
import { killDialog } from "$lib/dialogs";
import DialogBackdropClose from "$components/dialog/DialogBackdropClose.svelte";
export let id: string;
export let dismissable = true;
let dialogParent: HTMLDialogElement;
let open = false;
let closing = false;
export const close = () => {
if (dialogParent) {
closing = true;
open = false;
setTimeout(() => {
dialogParent.close();
killDialog();
}, 150);
}
};
$: if (dialogParent) {
dialogParent.showModal();
tick().then(() => {
open = true;
});
}
</script>
<dialog id="dialog-{id}" bind:this={dialogParent} class:closing class:open>
<slot></slot>
<DialogBackdropClose closeFunc={dismissable ? close : () => {}} />
</dialog>