<script lang="ts"> import { getSelectionContext } from '$lib/Selection'; import { toastFinally } from '$lib/Toasts'; import Star from '$lib/icons/Star.svelte'; import { Client, getContextClient } from '@urql/svelte'; const client = getContextClient(); const selection = getSelectionContext(); export let mutation: ( client: Client, args: { ids: number[]; input: { favourite: boolean } } ) => Promise<unknown>; function mutate(favourite: boolean) { mutation(client, { ids: $selection.ids, input: { favourite } }).catch(toastFinally); } </script> <button type="button" class="btn-slate justify-start gap-1" on:click={() => mutate(true)}> <Star favourite={true} /> <span>Favourite</span> </button> <button type="button" class="btn-slate justify-start gap-1" on:click={() => mutate(false)}> <Star favourite={false} /> <span>Unfavourite</span> </button>