From cd37c8aae96a1f621b662d7ddddd683f0a86150e Mon Sep 17 00:00:00 2001 From: valerio Date: Mon, 30 Mar 2026 16:31:04 +0200 Subject: [PATCH] FEAT: Version Selection --- src/lib/components/Library.svelte | 11 +++++++++-- src/lib/components/VersionCard.svelte | 22 ++++++++++++++++++---- src/lib/library.js | 23 ++++++++++++++--------- src/routes/+page.svelte | 4 ++-- 4 files changed, 43 insertions(+), 17 deletions(-) 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}