Disable modal button when doing domain deletion

This commit is contained in:
nemunaire 2025-06-09 13:38:37 +02:00
parent bcbb8ca58c
commit 8f0fe16c1a

View file

@ -30,7 +30,7 @@
<script lang="ts"> <script lang="ts">
import { createEventDispatcher } from "svelte"; import { createEventDispatcher } from "svelte";
import { Button, Modal, ModalBody, ModalFooter, ModalHeader } from "@sveltestrap/sveltestrap"; import { Button, Modal, ModalBody, ModalFooter, ModalHeader, Spinner } from "@sveltestrap/sveltestrap";
import { viewZone as APIViewZone } from "$lib/api/zone"; import { viewZone as APIViewZone } from "$lib/api/zone";
import { t } from "$lib/translations"; import { t } from "$lib/translations";
@ -38,13 +38,21 @@
const dispatch = createEventDispatcher(); const dispatch = createEventDispatcher();
export let isOpen = false; export let isOpen = false;
let inProgress = false;
function Open(): void { function Open(): void {
isOpen = true; isOpen = true;
inProgress = false;
} }
function toggle(): void { function toggle(): void {
isOpen = !isOpen; isOpen = !isOpen;
inProgress = false;
}
function submit(): void {
inProgress = true;
dispatch("detachDomain");
} }
controls.Open = Open; controls.Open = Open;
@ -56,10 +64,22 @@
{$t("domains.alert.remove")} {$t("domains.alert.remove")}
</ModalBody> </ModalBody>
<ModalFooter> <ModalFooter>
<Button outline color="secondary" on:click={() => (isOpen = false)}> <Button
outline
color="secondary"
disabled={inProgress}
on:click={() => (isOpen = false)}
>
{$t("domains.view.cancel-title")} {$t("domains.view.cancel-title")}
</Button> </Button>
<Button color="danger" on:click={() => dispatch("detachDomain")}> <Button
color="danger"
disabled={inProgress}
on:click={submit}
>
{#if inProgress}
<Spinner size="sm" />
{/if}
{$t("domains.discard")} {$t("domains.discard")}
</Button> </Button>
</ModalFooter> </ModalFooter>