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 { type Writable, writable } from "svelte/store";
|
||||||
import {GetBills} from '$wails/main/App'
|
import { GetBills } from "$wails/main/App";
|
||||||
import { main } from "$wails/models";
|
import { main } from "$wails/models";
|
||||||
import { toast } from "svelte-sonner";
|
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 bills: Map<number, main.Bill> = new Map<number, main.Bill>();
|
||||||
const res = await GetBills()
|
const res = await GetBills();
|
||||||
if (!res.success) {
|
if (!res.success) {
|
||||||
toast.error("Error getting bills " + res.error);
|
toast.error("Error getting bills " + res.error);
|
||||||
} else {
|
} else {
|
||||||
for (let i = 0; i < res.data.length; i++) {
|
for (let i = 0; i < res.data.length; i++) {
|
||||||
const bill = res.data[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,
|
subscribe,
|
||||||
update,
|
update,
|
||||||
set,
|
set,
|
||||||
// @ts-ignore
|
|
||||||
refresh: async () => {
|
refresh: async () => {
|
||||||
const res = await GetBills()
|
const res = await GetBills();
|
||||||
if (!res.success) {
|
if (!res.success) {
|
||||||
toast.error("Error getting bills " + res.error);
|
toast.error("Error getting bills " + res.error);
|
||||||
} else {
|
} else {
|
||||||
for (let i = 0; i < res.data.length; i++) {
|
for (let i = 0; i < res.data.length; i++) {
|
||||||
const bill = res.data[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: () => {
|
next: () => {
|
||||||
update((now: Date) => {
|
update((now: Date) => {
|
||||||
now.setMonth(now.getMonth() + 1);
|
now.setMonth(now.getMonth() + 1);
|
||||||
return now
|
return now;
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
prev: () => {
|
prev: () => {
|
||||||
update((now: Date) => {
|
update((now: Date) => {
|
||||||
now.setMonth(now.getMonth() - 1);
|
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