plane/web/store/root.ts
guru_sainath d6abb87a3a chore: implemented new store and issue layouts for issues and updated new data structure for issues (#2843)
* fix: Implemented new workflow in the issue store and updated the quick add workflow in list layout

* fix: initial load and mutaion of issues in list layout

* dev: implemented the new project issues store with grouped, subGrouped and unGrouped issue computed functions

* dev: default display properties data made as a function

* conflict: merge conflict resolved

* dev: implemented quick add logic in kanban

* chore: implemented quick add logic in calendar and spreadsheet layout

* fix: spreadsheet layout quick add fix

* dev: optimised the issues workflow and handled the issues order_by filter

* dev: project issue CRUD operations in new issue store architecture

* dev: issues filtering in calendar layout

* fix: build error

* dev/issue_filters_store

* chore: updated filters computed structure

* conflict: merge conflicts resolved in project issues

* dev: implemented gantt chart for project issues using the new mobx store

* dev: initialized cycle and module issue filters store

* dev: issue store and list layout store updates

* dev: quick add and update, delete issue in the list

* refactor list root changes

* dev: store new structure

* refactor spreadsheet and gnatt project roots

* fix errors for base gantt and spreadsheet roots

* connect Calendar project view

* minor house keeping

* connect Kanban View to th enew store

* generalise base calendar issue actions

* dev: store project issues and issue filters

* dev: store project issues and filters

* dev: updated undefined with displayFilters in project issue store

* Add Quick add to all the layouts

* connect module views to store

* dev: Rendering list issues in project issues

* dev: removed console log

* dev: module filters store

* fix errors and connect modules list and quick add for list

* dev: module issue store

* dev: modle filter store issue fixed and updates cycle issue filters

* minor house keeping changes

* dev: cycle issues and cycle filters

* connecty cycles to teh store

* dev: project view issues and issue filtrs

* connect project views

* dev: updated applied filters in layouts

* dev: replaced project id with view id in project views

* dev: in cycle and module store made cycledId and moduleId as optional

* fix minor issues and build errots

* dev: project draft and archived issues store and filters

---------

Co-authored-by: Anmol Singh Bhatia <anmolsinghbhatia@plane.so>
Co-authored-by: Aaryan Khandelwal <aaryankhandu123@gmail.com>
Co-authored-by: rahulramesha <rahulramesham@gmail.com>
2023-12-07 19:59:35 +05:30

362 lines
11 KiB
TypeScript

import { enableStaticRendering } from "mobx-react-lite";
// store imports
import { InstanceStore, IInstanceStore } from "./instance";
import AppConfigStore, { IAppConfigStore } from "./app-config.store";
import CommandPaletteStore, { ICommandPaletteStore } from "./command-palette.store";
import UserStore, { IUserStore } from "store/user.store";
import ThemeStore, { IThemeStore } from "store/theme.store";
import {
DraftIssuesStore,
IIssueDetailStore,
IIssueFilterStore,
IIssueKanBanViewStore,
IIssueStore,
IssueDetailStore,
IssueFilterStore,
IssueKanBanViewStore,
IIssueCalendarViewStore,
IssueCalendarViewStore,
IssueStore,
IIssueQuickAddStore,
IssueQuickAddStore,
} from "store/issue";
import {
IWorkspaceFilterStore,
IWorkspaceStore,
WorkspaceFilterStore,
WorkspaceStore,
WorkspaceMemberStore,
IWorkspaceMemberStore,
} from "store/workspace";
import {
IProjectPublishStore,
IProjectStore,
ProjectPublishStore,
ProjectStore,
IProjectStateStore,
ProjectStateStore,
IProjectLabelStore,
ProjectLabelStore,
ProjectEstimatesStore,
IProjectEstimateStore,
ProjectMemberStore,
IProjectMemberStore,
} from "store/project";
import {
IModuleFilterStore,
IModuleIssueKanBanViewStore,
IModuleIssueStore,
IModuleStore,
ModuleFilterStore,
ModuleIssueKanBanViewStore,
ModuleIssueStore,
IModuleIssueCalendarViewStore,
ModuleIssueCalendarViewStore,
ModuleStore,
} from "store/module";
import {
CycleIssueFilterStore,
CycleIssueKanBanViewStore,
CycleIssueStore,
CycleStore,
ICycleIssueFilterStore,
ICycleIssueKanBanViewStore,
ICycleIssueCalendarViewStore,
CycleIssueCalendarViewStore,
ICycleIssueStore,
ICycleStore,
} from "store/cycle";
import {
IProjectViewFiltersStore,
IProjectViewIssuesStore,
IProjectViewsStore,
ProjectViewFiltersStore,
ProjectViewIssuesStore,
ProjectViewsStore,
IProjectViewIssueCalendarViewStore,
ProjectViewIssueCalendarViewStore,
} from "store/project-view";
import CalendarStore, { ICalendarStore } from "store/calendar.store";
import {
GlobalViewFiltersStore,
GlobalViewIssuesStore,
GlobalViewsStore,
IGlobalViewFiltersStore,
IGlobalViewIssuesStore,
IGlobalViewsStore,
} from "store/global-view";
import {
ProfileIssueStore,
IProfileIssueStore,
ProfileIssueFilterStore,
IProfileIssueFilterStore,
} from "store/profile-issues";
import {
ArchivedIssueStore,
IArchivedIssueStore,
ArchivedIssueFilterStore,
IArchivedIssueFilterStore,
ArchivedIssueDetailStore,
IArchivedIssueDetailStore,
} from "store/archived-issues";
import { DraftIssueStore, IDraftIssueStore, DraftIssueFilterStore, IDraftIssueFilterStore } from "store/draft-issues";
import {
IInboxFiltersStore,
IInboxIssueDetailsStore,
IInboxIssuesStore,
IInboxStore,
InboxFiltersStore,
InboxIssueDetailsStore,
InboxIssuesStore,
InboxStore,
} from "store/inbox";
import { IWebhookStore, WebhookStore } from "./webhook.store";
import {
// global
IIssuesFilterStore,
IssuesFilterStore,
// project issues
IProjectIssuesStore,
ProjectIssuesStore,
// project issues filter
IProjectIssuesFilterStore,
ProjectIssuesFilterStore,
// module issues
IModuleIssuesStore,
ModuleIssuesStore,
// module issues filter
IModuleIssuesFilterStore,
ModuleIssuesFilterStore,
// cycle issues
ICycleIssuesStore,
CycleIssuesStore,
// cycle issues filter
ICycleIssuesFilterStore,
CycleIssuesFilterStore,
// project view issues
IViewIssuesStore,
ViewIssuesStore,
// project view issues filter
IViewIssuesFilterStore,
ViewIssuesFilterStore,
// archived issues
IProjectArchivedIssuesStore,
ProjectArchivedIssuesStore,
// archived issues filter
IProjectArchivedIssuesFilterStore,
ProjectArchivedIssuesFilterStore,
// draft issues
IProjectDraftIssuesStore,
ProjectDraftIssuesStore,
// draft issues filter
IProjectDraftIssuesFilterStore,
ProjectDraftIssuesFilterStore,
} from "store/issues";
import { CycleIssueFiltersStore, ICycleIssueFiltersStore } from "store/cycle-issues";
import { ModuleIssueFiltersStore, IModuleIssueFiltersStore } from "store/module-issues";
import { IMentionsStore, MentionsStore } from "store/editor";
// pages
import { PageStore, IPageStore } from "store/page.store";
enableStaticRendering(typeof window === "undefined");
export class RootStore {
instance: IInstanceStore;
user: IUserStore;
theme: IThemeStore;
appConfig: IAppConfigStore;
commandPalette: ICommandPaletteStore;
workspace: IWorkspaceStore;
workspaceFilter: IWorkspaceFilterStore;
workspaceMember: IWorkspaceMemberStore;
projectPublish: IProjectPublishStore;
project: IProjectStore;
projectState: IProjectStateStore;
projectLabel: IProjectLabelStore;
projectEstimates: IProjectEstimateStore;
projectMember: IProjectMemberStore;
issue: IIssueStore;
module: IModuleStore;
moduleIssue: IModuleIssueStore;
moduleFilter: IModuleFilterStore;
moduleIssueKanBanView: IModuleIssueKanBanViewStore;
moduleIssueCalendarView: IModuleIssueCalendarViewStore;
cycle: ICycleStore;
cycleIssue: ICycleIssueStore;
cycleIssueFilter: ICycleIssueFilterStore;
cycleIssueKanBanView: ICycleIssueKanBanViewStore;
cycleIssueCalendarView: ICycleIssueCalendarViewStore;
projectViews: IProjectViewsStore;
projectViewIssues: IProjectViewIssuesStore;
projectViewFilters: IProjectViewFiltersStore;
projectViewIssueCalendarView: IProjectViewIssueCalendarViewStore;
issueFilter: IIssueFilterStore;
issueDetail: IIssueDetailStore;
issueKanBanView: IIssueKanBanViewStore;
issueCalendarView: IIssueCalendarViewStore;
draftIssuesStore: DraftIssuesStore;
quickAddIssue: IIssueQuickAddStore;
calendar: ICalendarStore;
globalViews: IGlobalViewsStore;
globalViewIssues: IGlobalViewIssuesStore;
globalViewFilters: IGlobalViewFiltersStore;
profileIssues: IProfileIssueStore;
profileIssueFilters: IProfileIssueFilterStore;
archivedIssues: IArchivedIssueStore;
archivedIssueDetail: IArchivedIssueDetailStore;
archivedIssueFilters: IArchivedIssueFilterStore;
draftIssues: IDraftIssueStore;
draftIssueFilters: IDraftIssueFilterStore;
inbox: IInboxStore;
inboxIssues: IInboxIssuesStore;
inboxIssueDetails: IInboxIssueDetailsStore;
inboxFilters: IInboxFiltersStore;
webhook: IWebhookStore;
mentionsStore: IMentionsStore;
// project v3 issue and issue-filters starts
issuesFilter: IIssuesFilterStore;
projectIssues: IProjectIssuesStore;
projectIssuesFilter: IProjectIssuesFilterStore;
moduleIssues: IModuleIssuesStore;
moduleIssuesFilter: IModuleIssuesFilterStore;
cycleIssues: ICycleIssuesStore;
cycleIssuesFilter: ICycleIssuesFilterStore;
viewIssues: IViewIssuesStore;
viewIssuesFilter: IViewIssuesFilterStore;
projectArchivedIssues: IProjectArchivedIssuesStore;
projectArchivedIssuesFilter: IProjectArchivedIssuesFilterStore;
projectDraftIssues: IProjectDraftIssuesStore;
projectDraftIssuesFilter: IProjectDraftIssuesFilterStore;
// project v3 issue and issue-filters ends
cycleIssueFilters: ICycleIssueFiltersStore;
moduleIssueFilters: IModuleIssueFiltersStore;
page: IPageStore;
constructor() {
this.instance = new InstanceStore(this);
this.appConfig = new AppConfigStore(this);
this.commandPalette = new CommandPaletteStore(this);
this.user = new UserStore(this);
this.theme = new ThemeStore(this);
this.workspace = new WorkspaceStore(this);
this.workspaceFilter = new WorkspaceFilterStore(this);
this.workspaceMember = new WorkspaceMemberStore(this);
this.project = new ProjectStore(this);
this.projectState = new ProjectStateStore(this);
this.projectLabel = new ProjectLabelStore(this);
this.projectEstimates = new ProjectEstimatesStore(this);
this.projectPublish = new ProjectPublishStore(this);
this.projectMember = new ProjectMemberStore(this);
this.module = new ModuleStore(this);
this.moduleIssue = new ModuleIssueStore(this);
this.moduleFilter = new ModuleFilterStore(this);
this.moduleIssueKanBanView = new ModuleIssueKanBanViewStore(this);
this.moduleIssueCalendarView = new ModuleIssueCalendarViewStore(this);
this.cycle = new CycleStore(this);
this.cycleIssue = new CycleIssueStore(this);
this.cycleIssueFilter = new CycleIssueFilterStore(this);
this.cycleIssueKanBanView = new CycleIssueKanBanViewStore(this);
this.cycleIssueCalendarView = new CycleIssueCalendarViewStore(this);
this.projectViews = new ProjectViewsStore(this);
this.projectViewIssues = new ProjectViewIssuesStore(this);
this.projectViewFilters = new ProjectViewFiltersStore(this);
this.projectViewIssueCalendarView = new ProjectViewIssueCalendarViewStore(this);
this.issue = new IssueStore(this);
this.issueFilter = new IssueFilterStore(this);
this.issueDetail = new IssueDetailStore(this);
this.issueKanBanView = new IssueKanBanViewStore(this);
this.issueCalendarView = new IssueCalendarViewStore(this);
this.draftIssuesStore = new DraftIssuesStore(this);
this.quickAddIssue = new IssueQuickAddStore(this);
this.calendar = new CalendarStore(this);
this.globalViews = new GlobalViewsStore(this);
this.globalViewIssues = new GlobalViewIssuesStore(this);
this.globalViewFilters = new GlobalViewFiltersStore(this);
this.profileIssues = new ProfileIssueStore(this);
this.profileIssueFilters = new ProfileIssueFilterStore(this);
this.archivedIssues = new ArchivedIssueStore(this);
this.archivedIssueDetail = new ArchivedIssueDetailStore(this);
this.archivedIssueFilters = new ArchivedIssueFilterStore(this);
this.draftIssues = new DraftIssueStore(this);
this.draftIssueFilters = new DraftIssueFilterStore(this);
this.inbox = new InboxStore(this);
this.inboxIssues = new InboxIssuesStore(this);
this.inboxIssueDetails = new InboxIssueDetailsStore(this);
this.inboxFilters = new InboxFiltersStore(this);
this.webhook = new WebhookStore(this);
this.mentionsStore = new MentionsStore(this);
// project v3 issue and issue-filters starts
this.issuesFilter = new IssuesFilterStore(this);
this.projectIssues = new ProjectIssuesStore(this);
this.projectIssuesFilter = new ProjectIssuesFilterStore(this);
this.moduleIssues = new ModuleIssuesStore(this);
this.moduleIssuesFilter = new ModuleIssuesFilterStore(this);
this.cycleIssues = new CycleIssuesStore(this);
this.cycleIssuesFilter = new CycleIssuesFilterStore(this);
this.viewIssues = new ViewIssuesStore(this);
this.viewIssuesFilter = new ViewIssuesFilterStore(this);
this.projectArchivedIssues = new ProjectArchivedIssuesStore(this);
this.projectArchivedIssuesFilter = new ProjectArchivedIssuesFilterStore(this);
this.projectDraftIssues = new ProjectDraftIssuesStore(this);
this.projectDraftIssuesFilter = new ProjectDraftIssuesFilterStore(this);
// project v3 issue and issue-filters ends
this.cycleIssueFilters = new CycleIssueFiltersStore(this);
this.moduleIssueFilters = new ModuleIssueFiltersStore(this);
this.page = new PageStore(this);
}
}