2023-05-20 12:00:15 +00:00
|
|
|
import useSWR from "swr";
|
|
|
|
|
|
|
|
// services
|
|
|
|
import issuesService from "services/issues.service";
|
2023-08-11 10:29:13 +00:00
|
|
|
// hooks
|
|
|
|
import useIssuesView from "hooks/use-issues-view";
|
2023-05-20 12:00:15 +00:00
|
|
|
// fetch-keys
|
|
|
|
import { PROJECT_ISSUES_LIST_WITH_PARAMS } from "constants/fetch-keys";
|
|
|
|
|
|
|
|
const useGanttChartIssues = (workspaceSlug: string | undefined, projectId: string | undefined) => {
|
2023-09-12 16:57:15 +00:00
|
|
|
const { displayFilters, filters } = useIssuesView();
|
2023-08-11 10:29:13 +00:00
|
|
|
|
|
|
|
const params: any = {
|
2023-09-12 16:57:15 +00:00
|
|
|
order_by: displayFilters.order_by,
|
|
|
|
type: displayFilters?.type ? displayFilters?.type : undefined,
|
|
|
|
sub_issue: displayFilters.sub_issue,
|
2023-08-28 07:55:47 +00:00
|
|
|
assignees: filters?.assignees ? filters?.assignees.join(",") : undefined,
|
|
|
|
state: filters?.state ? filters?.state.join(",") : undefined,
|
|
|
|
priority: filters?.priority ? filters?.priority.join(",") : undefined,
|
|
|
|
labels: filters?.labels ? filters?.labels.join(",") : undefined,
|
|
|
|
created_by: filters?.created_by ? filters?.created_by.join(",") : undefined,
|
2023-08-29 14:41:38 +00:00
|
|
|
start_date: filters?.start_date ? filters?.start_date.join(",") : undefined,
|
2023-08-28 07:55:47 +00:00
|
|
|
target_date: filters?.target_date ? filters?.target_date.join(",") : undefined,
|
|
|
|
start_target_date: true, // to fetch only issues with a start and target date
|
2023-08-11 10:29:13 +00:00
|
|
|
};
|
|
|
|
|
2023-05-20 12:00:15 +00:00
|
|
|
// all issues under the workspace and project
|
|
|
|
const { data: ganttIssues, mutate: mutateGanttIssues } = useSWR(
|
2023-08-11 10:29:13 +00:00
|
|
|
workspaceSlug && projectId ? PROJECT_ISSUES_LIST_WITH_PARAMS(projectId, params) : null,
|
2023-05-20 12:00:15 +00:00
|
|
|
workspaceSlug && projectId
|
2023-08-11 10:29:13 +00:00
|
|
|
? () =>
|
|
|
|
issuesService.getIssuesWithParams(workspaceSlug.toString(), projectId.toString(), params)
|
2023-05-20 12:00:15 +00:00
|
|
|
: null
|
|
|
|
);
|
|
|
|
|
|
|
|
return {
|
|
|
|
ganttIssues,
|
|
|
|
mutateGanttIssues,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
export default useGanttChartIssues;
|