summaryrefslogtreecommitdiffstatshomepage
path: root/frontend/src/lib/tabs/AddOverlay.svelte
blob: b1c98bfc739f53f8684543e7f9b9bf9ba99a2b69 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
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}