import { writable } from "svelte/store"; import stuffLogClient from "../clients/stufflog"; import type { LogFilter, LogResult } from "../models/log"; interface ProjectStoreData { loading: boolean stale: boolean logs: LogResult[] filter: LogFilter } function createProjectStore() { const {update, subscribe} = writable({ loading: false, stale: true, logs: [], filter: {}, }); return { subscribe, markStale() { update(v => ({...v, stale: true})); }, async load(filter: LogFilter) { update(v => ({...v, loading: true, filter})); const logs = await stuffLogClient.listLogs(filter); update(v => ({...v, loading: false, stale: false, logs: logs.reverse()})); }, } } const logStore = createProjectStore(); export default logStore;