forked from github/plane
3a466cfe40
* fix: workspace issue properties fetch * fix: issue modal cycle fetch issue * fix: issue modal cycle fetch issue * chore: project issue properties hook updated
90 lines
2.8 KiB
TypeScript
90 lines
2.8 KiB
TypeScript
import { useCycle, useEstimate, useLabel, useMember, useModule, useProjectState } from "./store";
|
|
|
|
export const useProjectIssueProperties = () => {
|
|
const { fetchProjectStates } = useProjectState();
|
|
const {
|
|
project: { fetchProjectMembers },
|
|
} = useMember();
|
|
const { fetchProjectLabels } = useLabel();
|
|
const { fetchAllCycles: fetchProjectAllCycles } = useCycle();
|
|
const { fetchModules: fetchProjectAllModules } = useModule();
|
|
const { fetchProjectEstimates } = useEstimate();
|
|
|
|
// fetching project states
|
|
const fetchStates = async (
|
|
workspaceSlug: string | string[] | undefined,
|
|
projectId: string | string[] | undefined
|
|
) => {
|
|
if (workspaceSlug && projectId) {
|
|
await fetchProjectStates(workspaceSlug.toString(), projectId.toString());
|
|
}
|
|
};
|
|
// fetching project members
|
|
const fetchMembers = async (
|
|
workspaceSlug: string | string[] | undefined,
|
|
projectId: string | string[] | undefined
|
|
) => {
|
|
if (workspaceSlug && projectId) {
|
|
await fetchProjectMembers(workspaceSlug.toString(), projectId.toString());
|
|
}
|
|
};
|
|
|
|
// fetching project labels
|
|
const fetchLabels = async (
|
|
workspaceSlug: string | string[] | undefined,
|
|
projectId: string | string[] | undefined
|
|
) => {
|
|
if (workspaceSlug && projectId) {
|
|
await fetchProjectLabels(workspaceSlug.toString(), projectId.toString());
|
|
}
|
|
};
|
|
// fetching project cycles
|
|
const fetchCycles = async (
|
|
workspaceSlug: string | string[] | undefined,
|
|
projectId: string | string[] | undefined
|
|
) => {
|
|
if (workspaceSlug && projectId) {
|
|
await fetchProjectAllCycles(workspaceSlug.toString(), projectId.toString());
|
|
}
|
|
};
|
|
// fetching project modules
|
|
const fetchModules = async (
|
|
workspaceSlug: string | string[] | undefined,
|
|
projectId: string | string[] | undefined
|
|
) => {
|
|
if (workspaceSlug && projectId) {
|
|
await fetchProjectAllModules(workspaceSlug.toString(), projectId.toString());
|
|
}
|
|
};
|
|
// fetching project estimates
|
|
const fetchEstimates = async (
|
|
workspaceSlug: string | string[] | undefined,
|
|
projectId: string | string[] | undefined
|
|
) => {
|
|
if (workspaceSlug && projectId) {
|
|
await fetchProjectEstimates(workspaceSlug.toString(), projectId.toString());
|
|
}
|
|
};
|
|
|
|
const fetchAll = async (workspaceSlug: string | string[] | undefined, projectId: string | string[] | undefined) => {
|
|
if (workspaceSlug && projectId) {
|
|
await fetchStates(workspaceSlug, projectId);
|
|
await fetchMembers(workspaceSlug, projectId);
|
|
await fetchLabels(workspaceSlug, projectId);
|
|
await fetchCycles(workspaceSlug, projectId);
|
|
await fetchModules(workspaceSlug, projectId);
|
|
await fetchEstimates(workspaceSlug, projectId);
|
|
}
|
|
};
|
|
|
|
return {
|
|
fetchAll,
|
|
fetchStates,
|
|
fetchMembers,
|
|
fetchLabels,
|
|
fetchCycles,
|
|
fetchModules,
|
|
fetchEstimates,
|
|
};
|
|
};
|