generated from dave/wails-template
38 lines
1.0 KiB
TypeScript
38 lines
1.0 KiB
TypeScript
import { type Writable, writable } from "svelte/store";
|
|
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>> & { refresh: Function }> {
|
|
const bills: Map<number, main.Bill> = new Map<number, main.Bill>();
|
|
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);
|
|
}
|
|
}
|
|
|
|
const { subscribe, update, set } = writable(bills);
|
|
return {
|
|
subscribe,
|
|
update,
|
|
set,
|
|
refresh: async () => {
|
|
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);
|
|
}
|
|
}
|
|
},
|
|
};
|
|
}
|
|
|
|
export const billsStore = await createStore();
|