plane/web/hooks/use-store-issues.tsx

119 lines
3.1 KiB
TypeScript
Raw Normal View History

// issue store provider
import { useMobxIssueStore } from "lib/mobx/store-issues-provider";
// types
import { IWorkspaceIssues, IWorkspaceIssuesFilter } from "store/issue/workspace";
import { IProfileIssues, IProfileIssuesFilter } from "store/issue/profile";
import { IProjectIssues, IProjectIssuesFilter } from "store/issue/project";
import { ICycleIssues, ICycleIssuesFilter } from "store/issue/cycle";
import { IModuleIssues, IModuleIssuesFilter } from "store/issue/module";
import { IProjectViewIssues, IProjectViewIssuesFilter } from "store/issue/project-views";
import { IArchivedIssues, IArchivedIssuesFilter } from "store/issue/archived";
import { IDraftIssues, IDraftIssuesFilter } from "store/issue/draft";
interface IStoreIssues {
// workspace: {
// issues: IWorkspaceIssues;
// issuesFilter: IWorkspaceIssuesFilter;
// };
// profile: {
// issues: IProfileIssues;
// issuesFilter: IProfileIssuesFilter;
// };
project: {
issues: IProjectIssues;
issuesFilter: IProjectIssuesFilter;
};
// cycle: {
// issues: ICycleIssues;
// issuesFilter: ICycleIssuesFilter;
// };
// module: {
// issues: IModuleIssues;
// issuesFilter: IModuleIssuesFilter;
// };
// projectView: {
// issues: IProjectViewIssues;
// issuesFilter: IProjectViewIssuesFilter;
// };
// archived: {
// issues: IArchivedIssues;
// issuesFilter: IArchivedIssuesFilter;
// };
// draft: {
// issues: IDraftIssues;
// issuesFilter: IDraftIssuesFilter;
// };
}
interface IStoreIssuesWithHelpers extends IStoreIssues {
calendarHelper: any;
kanbanHelper: any;
}
const useStoreIssues = (issueSpace: keyof IStoreIssues) => {
const {
issue: {
workspaceSlug,
issues,
workspaceIssues,
workspaceIssuesFilter,
profileIssues,
profileIssuesFilter,
projectIssues,
projectIssuesFilter,
cycleIssues,
cycleIssuesFilter,
moduleIssues,
moduleIssuesFilter,
projectViewIssues,
projectViewIssuesFilter,
archivedIssues,
archivedIssuesFilter,
draftIssues,
draftIssuesFilter,
},
} = useMobxIssueStore();
const storeIssues: IStoreIssues = {
// workspace: {
// issues: workspaceIssues,
// issuesFilter: workspaceIssuesFilter,
// },
// profile: {
// issues: profileIssues,
// issuesFilter: profileIssuesFilter,
// },
project: {
issues: projectIssues,
issuesFilter: projectIssuesFilter,
},
// cycle: {
// issues: cycleIssues,
// issuesFilter: cycleIssuesFilter,
// },
// module: {
// issues: moduleIssues,
// issuesFilter: moduleIssuesFilter,
// },
// projectView: {
// issues: projectViewIssues,
// issuesFilter: projectViewIssuesFilter,
// },
// archived: {
// issues: archivedIssues,
// issuesFilter: archivedIssuesFilter,
// },
// draft: {
// issues: draftIssues,
// issuesFilter: draftIssuesFilter,
// },
};
return {
issues: storeIssues[issueSpace].issues,
issuesFilter: storeIssues[issueSpace].issuesFilter,
};
};
export default useStoreIssues;