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.
 
 
 
 
 
 

54 lines
1.8 KiB

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<ModalData>({name: "none"});
return {
subscribe,
set,
close() {
set({name: "none"})
},
}
}
const modalStore = createModalStore();
export default modalStore;