import { writable } from "svelte/store"; import type { GoalResult } from "../models/goal"; import type { GroupResult } from "../models/group"; import type { ItemResult } from "../models/item"; import type { LogResult } from "../models/log"; import type {ProjectResult} from "../models/project"; import type {TaskResult} from "../models/task"; import type Project from "../models/project"; import type Task from "../models/task"; import type ProjectGroup from "../models/projectgroup"; export type ModalData = | { name: "none" } | { name: "log.add", task: TaskResult } | { name: "log.edit", log: LogResult } | { name: "log.delete", log: LogResult } | { name: "task.add", project: ProjectResult } | { name: "task.edit", task: TaskResult } | { name: "task.delete", task: TaskResult } | { name: "project.add", groupId: string | null } | { name: "project.edit", project: ProjectResult } | { name: "project.delete", project: ProjectResult } | { name: "projectgroup.add" } | { name: "projectgroup.edit", projectGroup: ProjectGroup } | { name: "projectgroup.delete", projectGroup: ProjectGroup } | { name: "group.add" } | { name: "group.edit", group: GroupResult } | { name: "group.delete", group: GroupResult } | { name: "item.add", group: GroupResult } | { name: "item.edit", item: ItemResult } | { name: "item.delete", item: ItemResult } | { name: "goal.add" } | { name: "goal.edit", goal: GoalResult } | { name: "goal.delete", goal: GoalResult } | { name: "tasklink.add", project?: Project, task?: Task } | { name: "tasklink.delete", project: Project, task: Task } function createModalStore() { const {set, subscribe} = writable({name: "none"}); return { subscribe, set, close() { set({name: "none"}) }, } } const modalStore = createModalStore(); export default modalStore;