diff --git a/ts/graphs/CardCounts.svelte b/ts/graphs/CardCounts.svelte index 4c753c13c..cab4908ea 100644 --- a/ts/graphs/CardCounts.svelte +++ b/ts/graphs/CardCounts.svelte @@ -2,13 +2,16 @@ import { defaultGraphBounds } from "./graph-helpers"; import { gatherData, renderCards } from "./card-counts"; import type { GraphData, TableDatum } from "./card-counts"; + import type { PreferenceStore } from "./preferences"; import type pb from "anki/backend_proto"; import type { I18n } from "anki/i18n"; import SeparateInactiveCheckbox from "./SeparateInactiveCheckbox.svelte"; export let sourceData: pb.BackendProto.GraphsOut; export let i18n: I18n; + export let preferences: PreferenceStore; + let { cardCountsSeparateInactive } = preferences; let svg = null as HTMLElement | SVGElement | null; let bounds = defaultGraphBounds(); @@ -17,10 +20,9 @@ let graphData = (null as unknown) as GraphData; let tableData = (null as unknown) as TableDatum[]; - let cardCountsSeparateInactive = false; $: { - graphData = gatherData(sourceData, cardCountsSeparateInactive, i18n); + graphData = gatherData(sourceData, $cardCountsSeparateInactive, i18n); tableData = renderCards(svg as any, bounds, graphData); } @@ -56,7 +58,7 @@

{graphData.title}

- +
diff --git a/ts/graphs/GraphsPage.svelte b/ts/graphs/GraphsPage.svelte index a38d20f15..8615c28e5 100644 --- a/ts/graphs/GraphsPage.svelte +++ b/ts/graphs/GraphsPage.svelte @@ -62,6 +62,7 @@ diff --git a/ts/graphs/SeparateInactiveCheckbox.svelte b/ts/graphs/SeparateInactiveCheckbox.svelte index f998c5ceb..51ef6529f 100644 --- a/ts/graphs/SeparateInactiveCheckbox.svelte +++ b/ts/graphs/SeparateInactiveCheckbox.svelte @@ -1,13 +1,14 @@ diff --git a/ts/graphs/preferences.ts b/ts/graphs/preferences.ts index a4e37ac90..cc3109fc5 100644 --- a/ts/graphs/preferences.ts +++ b/ts/graphs/preferences.ts @@ -1,11 +1,10 @@ import { getGraphPreferences } from "./graph-helpers"; -import { writable } from "svelte/store"; +import { writable, get } from "svelte/store"; import type pb from "anki/backend_proto"; -interface CustomStore { +export interface CustomStore { subscribe: (getter: (value: T) => void) => () => void; set: (value: T) => void; - get: () => T; } export type PreferenceStore = { @@ -26,11 +25,6 @@ function createPreference( set(v); savePreferences(); }, - get: (): T => { - let result: any /* T */; - subscribe((value: T) => (result = value))(); - return result; - }, }; } @@ -43,7 +37,7 @@ function preparePreferences( function constructPreferences(): pb.BackendProto.GraphsPreferencesOut { const payload: Partial = {}; for (const [key, pref] of Object.entries(preferences as PreferenceStore)) { - payload[key] = pref.get(); + payload[key] = get(pref as any); } return payload as pb.BackendProto.GraphsPreferencesOut; }