diff --git a/frontend/src/lib/store/billsStore.ts b/frontend/src/lib/store/billsStore.ts index 1e9426e..d895a17 100644 --- a/frontend/src/lib/store/billsStore.ts +++ b/frontend/src/lib/store/billsStore.ts @@ -1,17 +1,17 @@ import { type Writable, writable } from "svelte/store"; -import {GetBills} from '$wails/main/App' +import { GetBills } from "$wails/main/App"; import { main } from "$wails/models"; import { toast } from "svelte-sonner"; -async function createStore(): Promise>> { +async function createStore(): Promise> & { refresh: Function }> { const bills: Map = new Map(); - const res = await GetBills() + const res = await GetBills(); if (!res.success) { toast.error("Error getting bills " + res.error); } else { for (let i = 0; i < res.data.length; i++) { const bill = res.data[i]; - bills.set(bill.id, bill) + bills.set(bill.id, bill); } } @@ -20,15 +20,14 @@ async function createStore(): Promise>> { subscribe, update, set, - // @ts-ignore refresh: async () => { - const res = await GetBills() + const res = await GetBills(); if (!res.success) { toast.error("Error getting bills " + res.error); } else { for (let i = 0; i < res.data.length; i++) { const bill = res.data[i]; - bills.set(bill.id, bill) + bills.set(bill.id, bill); } } }, diff --git a/frontend/src/lib/store/lastMonthPaymentsStore.ts b/frontend/src/lib/store/lastMonthPaymentsStore.ts new file mode 100644 index 0000000..9606269 --- /dev/null +++ b/frontend/src/lib/store/lastMonthPaymentsStore.ts @@ -0,0 +1,26 @@ +import { get, type Writable, writable } from "svelte/store"; +import { GetPaymentsForMonth } from "$wails/main/App"; +import { main } from "$wails/models"; +import { toast } from "svelte-sonner"; +import { nowStore } from "$lib/store/nowStore"; + +async function createStore(): Promise> { + const payments: main.Payment[] = []; + const now = new Date(); + now.setMonth(get(nowStore).getMonth() - 1) + const res = await GetPaymentsForMonth(now); + if (!res.success) { + toast.error("Error getting payments " + res.error); + } else { + payments.push(...res.data); + } + + const { subscribe, update, set } = writable(payments); + return { + subscribe, + update, + set, + }; +} + +export const lastMonthPaymentsStore = await createStore(); diff --git a/frontend/src/lib/store/nowStore.ts b/frontend/src/lib/store/nowStore.ts index faab0f7..7cbd1b7 100644 --- a/frontend/src/lib/store/nowStore.ts +++ b/frontend/src/lib/store/nowStore.ts @@ -9,13 +9,13 @@ async function createStore(): Promise & { next: Function; prev: F next: () => { update((now: Date) => { now.setMonth(now.getMonth() + 1); - return now + return now; }); }, prev: () => { update((now: Date) => { now.setMonth(now.getMonth() - 1); - return now + return now; }); }, }; diff --git a/frontend/src/lib/store/thisMonthPaymentsStore.ts b/frontend/src/lib/store/thisMonthPaymentsStore.ts new file mode 100644 index 0000000..c166061 --- /dev/null +++ b/frontend/src/lib/store/thisMonthPaymentsStore.ts @@ -0,0 +1,25 @@ +import { get, type Writable, writable } from "svelte/store"; +import { GetPaymentsForMonth } from "$wails/main/App"; +import { main } from "$wails/models"; +import { toast } from "svelte-sonner"; +import { nowStore } from "$lib/store/nowStore"; + +async function createStore(): Promise> { + const payments: main.Payment[] = []; + const now = get(nowStore) + const res = await GetPaymentsForMonth(now); + if (!res.success) { + toast.error("Error getting payments " + res.error); + } else { + payments.push(...res.data); + } + + const { subscribe, update, set } = writable(payments); + return { + subscribe, + update, + set, + }; +} + +export const thisMonthPaymentsStore = await createStore();