From 004ba9047ff7ca9ceb797998465f5edbf9889112 Mon Sep 17 00:00:00 2001 From: Jannik Date: Sat, 27 Sep 2025 20:44:11 +0200 Subject: [PATCH] feat(stores): saving routes --- .../components/lnv/main/SavedRoutes.svelte | 25 ++++++++ .../components/lnv/sidebar/MainSidebar.svelte | 25 +------- .../components/lnv/sidebar/TripSidebar.svelte | 63 ++++++++++++------- src/lib/services/stores.svelte.ts | 16 ++++- 4 files changed, 83 insertions(+), 46 deletions(-) create mode 100644 src/lib/components/lnv/main/SavedRoutes.svelte diff --git a/src/lib/components/lnv/main/SavedRoutes.svelte b/src/lib/components/lnv/main/SavedRoutes.svelte new file mode 100644 index 0000000..aebec74 --- /dev/null +++ b/src/lib/components/lnv/main/SavedRoutes.svelte @@ -0,0 +1,25 @@ + + +{#if saved.current.length != 0} +
+

+ Saved Routes +

+ +
+ {#each saved.current as save, _index (save.name)} + + {/each} +
+
+{/if} \ No newline at end of file diff --git a/src/lib/components/lnv/sidebar/MainSidebar.svelte b/src/lib/components/lnv/sidebar/MainSidebar.svelte index 99ce5ee..675cc28 100644 --- a/src/lib/components/lnv/sidebar/MainSidebar.svelte +++ b/src/lib/components/lnv/sidebar/MainSidebar.svelte @@ -16,9 +16,9 @@ import RequiresCapability from "../RequiresCapability.svelte"; import { saved } from "$lib/saved.svelte"; import { m } from "$lang/messages"; - import { getSaved } from "$lib/services/lnv"; import { view } from "../view.svelte"; import * as Card from "$lib/components/ui/card"; + import SavedRoutes from "../main/SavedRoutes.svelte";
{/if} - - {#await getSaved() then saved} - {#if saved.length != 0} -
-

- Saved Routes -

- -
- {#each saved as save, _index (save.name)} - - {/each} -
-
- {/if} - {/await} + + diff --git a/src/lib/components/lnv/sidebar/TripSidebar.svelte b/src/lib/components/lnv/sidebar/TripSidebar.svelte index 880e580..1188ad2 100644 --- a/src/lib/components/lnv/sidebar/TripSidebar.svelte +++ b/src/lib/components/lnv/sidebar/TripSidebar.svelte @@ -10,20 +10,28 @@ import { RouteIcon, SaveIcon, SendIcon } from "@lucide/svelte"; import { map } from "../map.svelte"; import { m } from "$lang/messages"; - import { deleteSaved, isSaved, putSaved } from "$lib/services/lnv"; - import { view } from "../view.svelte"; import RequiresCapability from "../RequiresCapability.svelte"; + import { hasStore, updateStore } from "$lib/services/stores.svelte"; - let { + const { route, }: { route: Trip; } = $props(); - onMount(() => { + onMount(async () => { removeAllRoutes(); drawRoute(route); + + if(route) { + isSaved = await hasStore({ + name: route.locations.map((l) => l.lat + "-" + l.lon).join(";"), + type: "route", + }); + } }); + + let isSaved = $state(false); {m["sidebar.trip.start"]()} - - {#await isSaved($state.snapshot(route)) then saved} - - {/await} + +