You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
import { writable } from "svelte/store"; import stuffLogClient from "../clients/stufflog"; import type { TaskFilter, TaskResult } from "../models/task";
interface TaskStoreData { loading: boolean stale: boolean filter: TaskFilter tasks: TaskResult[] }
function createTaskStore() { const {update, subscribe} = writable<TaskStoreData>({ loading: false, stale: true, filter: {}, tasks: [], });
return { subscribe,
markStale() { update(v => ({...v, stale: true})); },
async load(filter: TaskFilter) { update(v => ({...v, loading: true, stale: false, filter})); const tasks = await stuffLogClient.listTasks(filter); update(v => ({...v, loading: false, tasks: [...tasks]})); }, } }
const taskStore = createTaskStore();
export default taskStore; export const fpTaskStore = createTaskStore();
|