From 968e26cd02ac39cfff6a55b5515505c967e1a15f Mon Sep 17 00:00:00 2001 From: vcoppe Date: Thu, 8 Aug 2024 23:39:58 +0200 Subject: [PATCH] fix elevation profile fill not resetting, closes #40 --- website/src/lib/db.ts | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/website/src/lib/db.ts b/website/src/lib/db.ts index 6a31a423..8b6edcd3 100644 --- a/website/src/lib/db.ts +++ b/website/src/lib/db.ts @@ -42,14 +42,22 @@ class Database extends Dexie { export const db = new Database(); // Wrap Dexie live queries in a Svelte store to avoid triggering the query for every subscriber, and updates to the store are pushed to the DB -export function bidirectionalDexieStore(table: Dexie.Table, key: K, initial: V, initialize: boolean = true): Writable { - let store = writable(initialize ? initial : undefined); +export function bidirectionalDexieStore(table: Dexie.Table, key: K, initial: V, initialize: boolean = true): Writable { + let first = true; + let store = writable(initialize ? initial : undefined); liveQuery(() => table.get(key)).subscribe(value => { - if (value === undefined && !initialize) { - store.set(initial); - } else if (value !== undefined) { + if (value === undefined) { + if (first) { + if (!initialize) { + store.set(initial); + } + } else { + store.set(value); + } + } else { store.set(value); } + first = false; }); return { subscribe: store.subscribe,