From 8ec0afe8e53300b5f512d49afc2d2f9f8da3858c Mon Sep 17 00:00:00 2001 From: Marcos Date: Wed, 27 Nov 2024 11:48:45 -0300 Subject: [PATCH 1/6] fix: networks classification --- src/lib/components/Network.svelte | 20 ++++++++++++--- src/lib/components/shared/Dropdown.svelte | 31 +++++++++++++++++------ src/lib/models/ui.ts | 1 + 3 files changed, 40 insertions(+), 12 deletions(-) diff --git a/src/lib/components/Network.svelte b/src/lib/components/Network.svelte index d3c8173..6e378f6 100644 --- a/src/lib/components/Network.svelte +++ b/src/lib/components/Network.svelte @@ -1,6 +1,7 @@ (a.label > b.label ? 1 : -1))} + items={globalState.networks.map(networkToDropdownItem)} placeholder="Select Network" on:select={(e) => onNetworkSelect(e.detail)} /> diff --git a/src/lib/components/shared/Dropdown.svelte b/src/lib/components/shared/Dropdown.svelte index d812afa..a566ebf 100644 --- a/src/lib/components/shared/Dropdown.svelte +++ b/src/lib/components/shared/Dropdown.svelte @@ -18,6 +18,13 @@ const { placeholder, items, disabled, emptyLabel, defaultItem, name }: Props = $props(); + const groupedItems = $derived(items.reduce((acc, item) => { + const group = item.group || 'default'; + if (!acc[group]) acc[group] = []; + acc[group].push(item); + return acc; + }, {} as Record)); + // network selection logic let selected = $state(defaultItem); const onSelect = (item: DropdownItem) => { @@ -44,14 +51,22 @@