prices: fold groceries and CS skins into one price tracker (/trackers/prices) with tabs
Deploy production / deploy (push) Successful in 1m30s

- tab registry in #lib/price-trackers (add a tab = route + entry + icon)
- groceries -> /trackers/prices/groceries (owner-only), CS prices -> /trackers/prices/cs (public)
- old /trackers/groceries/* and /projects/cs-prices/* redirect (301 GET, 308 POST) with query
- nav: one prices entry replaces groceries and skins; cyan price-tag icon
This commit is contained in:
stan committed 2026-10-27 10:38:10 +00:00
1 parent c175c25615
commit 81b0c51672
29 files changed
+163 -28

No files matched your search

+14
View File
@@ -0,0 +1,14 @@
<script lang="ts">
// One price tracker, a tab per thing (#lib/price-trackers). Each tab keeps its own page,
// loader and data; this only adds the tab bar. Private tabs are only listed for me.
import { page } from '$app/state';
import Tag from 'lucide-svelte/icons/tag';
import SpottingSwitcher from '#lib/components/SpottingSwitcher.svelte';
import { visiblePriceTabs } from '#lib/price-trackers.js';
let { children } = $props();
const tabs = $derived(visiblePriceTabs(Boolean(page.data.isOwner)));
</script>
<SpottingSwitcher items={tabs} home="/trackers/prices" label="prices" homeIcon={Tag} />
{@render children()}