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/MarkBookmark.svelte | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)
 create mode 100644 frontend/src/lib/toolbar/MarkBookmark.svelte

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

diff --git a/frontend/src/lib/toolbar/MarkBookmark.svelte b/frontend/src/lib/toolbar/MarkBookmark.svelte
new file mode 100644
index 0000000..792b84f
--- /dev/null
+++ b/frontend/src/lib/toolbar/MarkBookmark.svelte
@@ -0,0 +1,27 @@
+<script lang="ts">
+	import { getSelectionContext } from '$lib/Selection';
+	import { toastFinally } from '$lib/Toasts';
+	import Bookmark from '$lib/icons/Bookmark.svelte';
+	import { Client, getContextClient } from '@urql/svelte';
+
+	const client = getContextClient();
+	const selection = getSelectionContext();
+
+	export let mutation: (
+		client: Client,
+		args: { ids: number[]; input: { bookmarked: boolean } }
+	) => Promise<unknown>;
+
+	function mutate(bookmarked: boolean) {
+		mutation(client, { ids: $selection.ids, input: { bookmarked } }).catch(toastFinally);
+	}
+</script>
+
+<button type="button" class="btn-slate flex justify-start gap-1" on:click={() => mutate(true)}>
+	<Bookmark bookmarked={true} />
+	<span>Bookmark</span>
+</button>
+<button type="button" class="btn-slate flex justify-start gap-1" on:click={() => mutate(false)}>
+	<Bookmark bookmarked={false} />
+	<span>Unbookmark</span>
+</button>
-- 
cgit v1.2.3-2-gb3c3

