plane/web/store/kanban.ts
2023-09-04 13:07:55 +05:30

83 lines
1.6 KiB
TypeScript

import { observable, action, computed, makeObservable, runInAction } from "mobx";
// types
import { RootStore } from "./root";
// services
export interface IKanbanStore {
loader: boolean;
error: any | null;
// current issue view
issueView?: "kanban";
// filters
priority?: null;
state?: null;
assignees?: null;
createdBy?: null;
labels?: null;
startDate?: null;
dueDate?: null;
userSelectedParams?: {
assignees: undefined | string;
created_by: undefined | string;
group_by: undefined | string;
labels: undefined | string;
order_by: undefined | string;
priority: undefined | string;
start_date: undefined | string;
state: undefined | string;
sub_issue: boolean;
target_date: undefined | string;
type: undefined | string;
};
// display properties
displayProperties?: {
assignee: boolean;
attachment_count: boolean;
created_on: boolean;
due_date: boolean;
estimate: boolean;
key: boolean;
labels: boolean;
link: boolean;
priority: boolean;
start_date: boolean;
state: boolean;
sub_issue_count: boolean;
updated_on: boolean;
};
// extra's
showEmptyGroups?: boolean;
issues?: null;
}
class KanbanStore implements IKanbanStore {
loader: boolean = false;
error: any | null = null;
// root store
rootStore;
// service
projectPublishService = null;
constructor(_rootStore: RootStore) {
makeObservable(this, {
// observable
loader: observable,
error: observable,
// action
// computed
});
this.rootStore = _rootStore;
this.projectPublishService = null;
}
}
export default KanbanStore;