<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}
