Refactor getters to stores

This commit is contained in:
2024-06-12 10:19:51 +02:00
parent 63cdc3c657
commit b440da3883
9 changed files with 88 additions and 54 deletions

View File

@@ -2,8 +2,6 @@
import type { Food } from '$lib/database/food' import type { Food } from '$lib/database/food'
export let item: Food export let item: Food
console.log(item)
</script> </script>
<template> <template>

View File

@@ -1,19 +1,8 @@
<script lang="ts"> <script lang="ts">
import { type AggregatedFood, FoodService } from '$lib/database/food'
import { onMount } from 'svelte'
import AggregatedFoodTable from '$components/AggregatedFood/AggregatedFoodTable.svelte' import AggregatedFoodTable from '$components/AggregatedFood/AggregatedFoodTable.svelte'
import { dailyFoodStore } from '$lib/store/dailyFoodStore'
let foods: AggregatedFood[] = []
onMount(async () => {
const [dbfoods, err] = await FoodService.GetDaily()
if (err) {
console.error(err)
return
}
foods = dbfoods
})
</script> </script>
<template> <template>
<AggregatedFoodTable items="{foods}" /> <AggregatedFoodTable items="{$dailyFoodStore}" />
</template> </template>

View File

@@ -1,19 +1,8 @@
<script lang="ts"> <script lang="ts">
import { type AggregatedFood, FoodService } from '$lib/database/food'
import { onMount } from 'svelte'
import AggregatedFoodTable from '$components/AggregatedFood/AggregatedFoodTable.svelte' import AggregatedFoodTable from '$components/AggregatedFood/AggregatedFoodTable.svelte'
import { monthlyFoodStore } from '$lib/store/monthlyFoodStore'
let foods: AggregatedFood[] = []
onMount(async () => {
const [dbfoods, err] = await FoodService.GetMonthly()
if (err) {
console.error(err)
return
}
foods = dbfoods
})
</script> </script>
<template> <template>
<AggregatedFoodTable items="{foods}" /> <AggregatedFoodTable items="{$monthlyFoodStore}" />
</template> </template>

View File

@@ -1,19 +1,8 @@
<script lang="ts"> <script lang="ts">
import { type AggregatedFood, FoodService } from '$lib/database/food'
import { onMount } from 'svelte'
import AggregatedFoodTable from '$components/AggregatedFood/AggregatedFoodTable.svelte' import AggregatedFoodTable from '$components/AggregatedFood/AggregatedFoodTable.svelte'
import { weeklyFoodStore } from '$lib/store/weeklyFoodStore'
let foods: AggregatedFood[] = []
onMount(async () => {
const [dbfoods, err] = await FoodService.GetWeekly()
if (err) {
console.error(err)
return
}
foods = dbfoods
})
</script> </script>
<template> <template>
<AggregatedFoodTable items="{foods}" /> <AggregatedFoodTable items="{$weeklyFoodStore}" />
</template> </template>

View File

@@ -1,19 +1,8 @@
<script lang="ts"> <script lang="ts">
import { type AggregatedFood, FoodService } from '$lib/database/food'
import { onMount } from 'svelte'
import AggregatedFoodTable from '$components/AggregatedFood/AggregatedFoodTable.svelte' import AggregatedFoodTable from '$components/AggregatedFood/AggregatedFoodTable.svelte'
import { yearlyFoodStore } from '$lib/store/yearlyFoodStore'
let foods: AggregatedFood[] = []
onMount(async () => {
const [dbfoods, err] = await FoodService.GetYearly()
if (err) {
console.error(err)
return
}
foods = dbfoods
})
</script> </script>
<template> <template>
<AggregatedFoodTable items="{foods}" /> <AggregatedFoodTable items="{$yearlyFoodStore}" />
</template> </template>

View File

@@ -0,0 +1,20 @@
import { type Writable, writable } from 'svelte/store'
import { type AggregatedFood, FoodService } from '$lib/database/food'
async function createStore(): Promise<Writable<AggregatedFood[]>> {
let [foods, err] = await FoodService.GetDaily()
if (err) {
foods = []
console.error(err)
}
const { subscribe, update, set } = writable(foods)
return {
subscribe,
update,
set
}
}
export const dailyFoodStore = await createStore()

View File

@@ -0,0 +1,20 @@
import { type Writable, writable } from 'svelte/store'
import { type AggregatedFood, FoodService } from '$lib/database/food'
async function createStore(): Promise<Writable<AggregatedFood[]>> {
let [foods, err] = await FoodService.GetMonthly()
if (err) {
foods = []
console.error(err)
}
const { subscribe, update, set } = writable(foods)
return {
subscribe,
update,
set
}
}
export const monthlyFoodStore = await createStore()

View File

@@ -0,0 +1,20 @@
import { type Writable, writable } from 'svelte/store'
import { type AggregatedFood, FoodService } from '$lib/database/food'
async function createStore(): Promise<Writable<AggregatedFood[]>> {
let [foods, err] = await FoodService.GetWeekly()
if (err) {
foods = []
console.error(err)
}
const { subscribe, update, set } = writable(foods)
return {
subscribe,
update,
set
}
}
export const weeklyFoodStore = await createStore()

View File

@@ -0,0 +1,20 @@
import { type Writable, writable } from 'svelte/store'
import { type AggregatedFood, FoodService } from '$lib/database/food'
async function createStore(): Promise<Writable<AggregatedFood[]>> {
let [foods, err] = await FoodService.GetYearly()
if (err) {
foods = []
console.error(err)
}
const { subscribe, update, set } = writable(foods)
return {
subscribe,
update,
set
}
}
export const yearlyFoodStore = await createStore()