feat: init
This commit is contained in:
43
apps/web/core/hooks/use-issue-layout-store.ts
Normal file
43
apps/web/core/hooks/use-issue-layout-store.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import { createContext, useContext } from "react";
|
||||
import { useParams } from "next/navigation";
|
||||
import { EIssuesStoreType } from "@plane/types";
|
||||
import { useIssues } from "./store/use-issues";
|
||||
|
||||
export const IssuesStoreContext = createContext<EIssuesStoreType | undefined>(undefined);
|
||||
|
||||
export const useIssueStoreType = () => {
|
||||
const storeType = useContext(IssuesStoreContext);
|
||||
const { globalViewId, viewId, projectId, cycleId, moduleId, userId, epicId, teamspaceId } = useParams();
|
||||
|
||||
// If store type exists in context, use that store type
|
||||
if (storeType) return storeType;
|
||||
|
||||
// else check the router params to determine the issue store
|
||||
if (globalViewId) return EIssuesStoreType.GLOBAL;
|
||||
|
||||
if (userId) return EIssuesStoreType.PROFILE;
|
||||
|
||||
if (teamspaceId && viewId) return EIssuesStoreType.TEAM_VIEW;
|
||||
|
||||
if (teamspaceId && projectId) return EIssuesStoreType.TEAM_PROJECT_WORK_ITEMS;
|
||||
|
||||
if (viewId) return EIssuesStoreType.PROJECT_VIEW;
|
||||
|
||||
if (cycleId) return EIssuesStoreType.CYCLE;
|
||||
|
||||
if (moduleId) return EIssuesStoreType.MODULE;
|
||||
|
||||
if (epicId) return EIssuesStoreType.EPIC;
|
||||
|
||||
if (projectId) return EIssuesStoreType.PROJECT;
|
||||
|
||||
if (teamspaceId) return EIssuesStoreType.TEAM;
|
||||
|
||||
return EIssuesStoreType.PROJECT;
|
||||
};
|
||||
|
||||
export const useIssuesStore = () => {
|
||||
const storeType = useIssueStoreType();
|
||||
|
||||
return useIssues(storeType);
|
||||
};
|
||||
Reference in New Issue
Block a user