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
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;
|