diff --git a/src/lib/components/EmptyFoodComp.svelte b/src/lib/components/EmptyFoodComp.svelte index ce572a0..a15d7fb 100644 --- a/src/lib/components/EmptyFoodComp.svelte +++ b/src/lib/components/EmptyFoodComp.svelte @@ -2,6 +2,8 @@ import { type Food, FoodService } from '$lib/database/food' import { toast } from 'svelte-sonner' import { createEventDispatcher } from 'svelte' + import type { Err } from '$lib/types' + import { foodStore } from '$lib/store/foodStore' const dispatch = createEventDispatcher() @@ -19,7 +21,7 @@ item.food = name.trim() item.amount = parseInt(amount.trim()) item.description = description.trim() - const [food, err] = await FoodService.Create(item) + const [dbFood, err]: [Food, Err] = await FoodService.Create(item) name = '' amount = '' description = '' @@ -28,7 +30,10 @@ toast.error(err) return } - dispatch('created', food) + foodStore.update((food) => { + food.push(dbFood) + return food + }) } } diff --git a/src/lib/components/Header.svelte b/src/lib/components/Header.svelte index 44e14d6..aa1d284 100644 --- a/src/lib/components/Header.svelte +++ b/src/lib/components/Header.svelte @@ -21,14 +21,6 @@ label: 'Home', href: '/' }, - { - label: 'IPC', - href: '/#IPC' - }, - { - label: 'Versions', - href: '/#versions' - } ] diff --git a/src/lib/router/routes/Home.svelte b/src/lib/router/routes/Home.svelte index 6abb6d8..7fd235b 100644 --- a/src/lib/router/routes/Home.svelte +++ b/src/lib/router/routes/Home.svelte @@ -3,16 +3,14 @@ import { type Food, FoodService } from '$lib/database/food' import FoodComp from '$components/FoodComp.svelte' import EmptyFoodComp from '$components/EmptyFoodComp.svelte' - - let food: Food[] = [] - onMount(async () => { - food = await FoodService.GetAllForDate(new Date()); - }) + import { foodStore } from '$lib/store/foodStore' function newFood(event: CustomEvent) { console.log(event) - food.push(event.detail) - food = food + foodStore.update((food) => { + food.push(event.detail) + return food + }) } @@ -43,8 +41,8 @@ - - {#each food as f} + + {#each $foodStore as f} {/each} diff --git a/src/lib/store/foodStore.ts b/src/lib/store/foodStore.ts new file mode 100644 index 0000000..1f60c64 --- /dev/null +++ b/src/lib/store/foodStore.ts @@ -0,0 +1,15 @@ +import { type Writable, writable } from 'svelte/store' +import { type Food, FoodService } from '$lib/database/food' + + +async function createStore(): Promise> { + const foods = await FoodService.GetAllForDate(new Date()) + const { subscribe, update, set } = writable(foods) + return { + subscribe, + update, + set + } +} + +export const foodStore = await createStore()