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 slApi from "../api/stufflog";
import stufflogStore from "./stufflog";
function createItemStore() { const {set, update, subscribe} = writable([])
return { subscribe, listItems() { return slApi.listItems().then(items => { set(items) console.log(items) return items }) },
findItem(id) { return slApi.getItem(id).then(item => { update(s => replaceItem(s, item)) return item }) },
createItem(item) { return slApi.postItem(item).then(item => { update(s => replaceItem(s, item)) return item }) },
updateItem(id, ...updates) { return slApi.updateItem(id, ...updates).then(item => { update(s => replaceItem(s, item)) return item }) },
deleteItem(id) { return slApi.deleteItem(id).then(item => { update(s => s.items.filter(i => i.id !== item.id)) return item }) }, } }
function replaceItem(s, item) { return ([ ...s.items.filter(i => i.id !== item.id), item ].sort((a, b) => a.name.localeCompare(b.name))) }
export default createItemStore();
|