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

(limited to 'frontend/src/lib/tabs/AddOverlay.svelte')

diff --git a/frontend/src/lib/tabs/AddOverlay.svelte b/frontend/src/lib/tabs/AddOverlay.svelte
new file mode 100644
index 0000000..b1c98bf
--- /dev/null
+++ b/frontend/src/lib/tabs/AddOverlay.svelte
@@ -0,0 +1,36 @@
+<script lang="ts">
+	import { updateComics } from '$gql/Mutations';
+	import { UpdateMode } from '$gql/graphql';
+	import { getSelectionContext } from '$lib/Selection';
+	import { toastFinally } from '$lib/Toasts';
+	import { fadeDefault } from '$lib/Transitions';
+	import { getContextClient } from '@urql/svelte';
+	import { fade } from 'svelte/transition';
+
+	const client = getContextClient();
+	const selection = getSelectionContext();
+
+	export let id: number;
+
+	function addPages() {
+		updateComics(client, {
+			ids: id,
+			input: { pages: { ids: $selection.ids, options: { mode: UpdateMode.Add } } }
+		})
+			.then(() => ($selection = $selection.none()))
+			.catch(toastFinally);
+	}
+</script>
+
+{#if $selection.size > 0}
+	<div class="absolute left-1 top-1" transition:fade={fadeDefault}>
+		<button
+			type="button"
+			class="btn-blue rounded-full shadow-sm shadow-black"
+			title="Add to this comic"
+			on:click|preventDefault={addPages}
+		>
+			<span class="icon-base icon-[material-symbols--note-add]" />
+		</button>
+	</div>
+{/if}
-- 
cgit v1.2.3-2-gb3c3

