generated from dave/wails-template
Add payment stores
This commit is contained in:
@@ -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<Writable<Map<number, main.Bill>>> {
|
||||
async function createStore(): Promise<Writable<Map<number, main.Bill>> & { refresh: Function }> {
|
||||
const bills: Map<number, main.Bill> = new Map<number, main.Bill>();
|
||||
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<Writable<Map<number, main.Bill>>> {
|
||||
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);
|
||||
}
|
||||
}
|
||||
},
|
||||
|
26
frontend/src/lib/store/lastMonthPaymentsStore.ts
Normal file
26
frontend/src/lib/store/lastMonthPaymentsStore.ts
Normal file
@@ -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<Writable<main.Payment[]>> {
|
||||
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();
|
@@ -9,13 +9,13 @@ async function createStore(): Promise<Writable<Date> & { 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;
|
||||
});
|
||||
},
|
||||
};
|
||||
|
25
frontend/src/lib/store/thisMonthPaymentsStore.ts
Normal file
25
frontend/src/lib/store/thisMonthPaymentsStore.ts
Normal file
@@ -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<Writable<main.Payment[]>> {
|
||||
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();
|
Reference in New Issue
Block a user