diff --git a/src/lib/components/Library.svelte b/src/lib/components/Library.svelte index 4dc03d1..94dac5b 100644 --- a/src/lib/components/Library.svelte +++ b/src/lib/components/Library.svelte @@ -2,6 +2,13 @@ import VersionCard from './VersionCard.svelte'; import { send, receive } from '$lib/transition.js'; import { flip } from 'svelte/animate'; + import { selectedVersionStore } from '$lib/library.js'; + + let selectedVersion = $state(null); + + selectedVersionStore.subscribe((version) => { + selectedVersion = version; + }); let { installedVersions } = $props(); import '@webtui/css/base.css'; @@ -22,7 +29,7 @@ in:receive={{ key: version.version }} out:send={{ key: version.version }} > - + {/each} {:else} @@ -40,7 +47,7 @@ in:receive={{ key: version.version }} out:send={{ key: version.version }} > - + {/each} diff --git a/src/lib/components/VersionCard.svelte b/src/lib/components/VersionCard.svelte index b3e32fd..f216a94 100644 --- a/src/lib/components/VersionCard.svelte +++ b/src/lib/components/VersionCard.svelte @@ -4,15 +4,18 @@ deleteVersion, launchBlenderVersion, toggleFavourite, - registerVersion + registerVersion, + selectVersion } from '$lib/library'; import Button from '$lib/components/Button.svelte'; import Menu from '$lib/components/Menu.svelte'; import { show } from '$lib/components/Dialog.svelte'; - let { version } = $props(); + let { version, selectedVersion } = $props(); let popup = $state(); + let selected = $derived(version.version === selectedVersion?.version); + async function handleDelete() { const prompt = await show({ title: 'Delete', @@ -41,7 +44,16 @@ -
+
{}} + onclick={async () => { + await selectVersion(version); + }} + id="card" + class:selected +>
{version.version}