From d1d654ebac2d51e3841675faeb56480e440f622f Mon Sep 17 00:00:00 2001
From: Wolfgang Müller
Date: Tue, 5 Mar 2024 18:08:09 +0100
Subject: Initial commit

---
 frontend/src/lib/toolbar/DeleteSelection.svelte | 26 +++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
 create mode 100644 frontend/src/lib/toolbar/DeleteSelection.svelte

(limited to 'frontend/src/lib/toolbar/DeleteSelection.svelte')

diff --git a/frontend/src/lib/toolbar/DeleteSelection.svelte b/frontend/src/lib/toolbar/DeleteSelection.svelte
new file mode 100644
index 0000000..7459a87
--- /dev/null
+++ b/frontend/src/lib/toolbar/DeleteSelection.svelte
@@ -0,0 +1,26 @@
+<script lang="ts">
+	import type { DeleteMutation } from '$gql/Mutations';
+	import { getSelectionContext } from '$lib/Selection';
+	import { toastFinally } from '$lib/Toasts';
+	import { confirmDeletion } from '$lib/Utils';
+	import DeleteButton from '$lib/components/DeleteButton.svelte';
+	import { getContextClient } from '@urql/svelte';
+
+	const client = getContextClient();
+	const selection = getSelectionContext();
+
+	export let mutation: DeleteMutation;
+	export let warning: string | undefined = undefined;
+
+	function remove() {
+		const mutate = () => {
+			mutation(client, { ids: $selection.ids })
+				.then(() => ($selection = $selection.clear()))
+				.catch(toastFinally);
+		};
+
+		confirmDeletion($selection.typename, $selection.names, mutate, warning);
+	}
+</script>
+
+<DeleteButton on:click={remove} />
-- 
cgit v1.2.3-2-gb3c3

