summaryrefslogtreecommitdiffstatshomepage
path: root/frontend/src/lib/pills/AssociationPill.svelte
blob: fec59b83e4e494837da2504251b5a5582f092cd8 (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
<script lang="ts">
	import Artist from '$lib/icons/Artist.svelte';
	import Character from '$lib/icons/Character.svelte';
	import Circle from '$lib/icons/Circle.svelte';
	import World from '$lib/icons/World.svelte';
	import type { Component } from 'svelte';
	import Pill from './Pill.svelte';

	type Association = 'artist' | 'circle' | 'world' | 'character';

	let { name, type }: { name: string; type: Association } = $props();

	const icons: Record<Association, Component> = {
		artist: Artist,
		character: Character,
		circle: Circle,
		world: World
	};

	const Icon = icons[type];
</script>

<Pill {name}>
	{#snippet icon()}
		<Icon />
	{/snippet}
</Pill>