diff --git a/.forgejo/workflows/ci.yaml b/.forgejo/workflows/ci.yaml index dc1114b..d2ea852 100644 --- a/.forgejo/workflows/ci.yaml +++ b/.forgejo/workflows/ci.yaml @@ -50,6 +50,7 @@ jobs: id: e2etest run: | pnpm run build -l silent + npx playwright install chromium pnpm run test:e2e - name: 💢 Upload E2E report if: ${{ failure() && steps.e2etest.conclusion == 'failure' }} diff --git a/src/lib/components/filter/SavedFilters.svelte b/src/lib/components/filter/SavedFilters.svelte index 5854b2b..20baa2c 100644 --- a/src/lib/components/filter/SavedFilters.svelte +++ b/src/lib/components/filter/SavedFilters.svelte @@ -8,12 +8,14 @@ import { toastError, toastInfo } from "$lib/shared/util/toast"; import Icon from "$lib/components/ui/Icon.svelte"; - import { savedFilters } from "$lib/stores"; + import { getSavedFilters } from "$lib/stores"; import Chip from "./SavedFilterChip.svelte"; export let view: string; + const savedFilters = getSavedFilters(); + $: filters = $savedFilters[view] ?? []; function getQuery(): string { diff --git a/src/lib/components/table/PatientTable.svelte b/src/lib/components/table/PatientTable.svelte index b4ecfed..57f1fbe 100644 --- a/src/lib/components/table/PatientTable.svelte +++ b/src/lib/components/table/PatientTable.svelte @@ -37,7 +37,7 @@ > {patient.id} $mainWidth < 500); -export const savedFilters: Writable> = writable({}); +// Context key: "savedFilters" +export type SavedFilters = Writable>; +export const getSavedFilters: () => SavedFilters = () => getContext("savedFilters"); diff --git a/src/routes/(app)/+layout.svelte b/src/routes/(app)/+layout.svelte index ef24f7a..8d10a77 100644 --- a/src/routes/(app)/+layout.svelte +++ b/src/routes/(app)/+layout.svelte @@ -3,16 +3,22 @@ import type { LayoutData } from "./$types"; import { mdiAccount, mdiHome } from "@mdi/js"; + import { setContext } from "svelte"; + import { writable } from "svelte/store"; import { defaultFilterUrl, defaultVisitUrl } from "$lib/shared/util"; import Icon from "$lib/components/ui/Icon.svelte"; import NavLink from "$lib/components/ui/NavLink.svelte"; - import { savedFilters } from "$lib/stores"; + import type { SavedFilters } from "$lib/stores"; export let data: LayoutData; + const savedFilters: SavedFilters = writable(); + $: savedFilters.set(data.savedFilters); + + setContext("savedFilters", savedFilters);