import useSWR from "swr"; // services import modulesService from "services/modules.service"; // hooks import useIssuesView from "hooks/use-issues-view"; // fetch-keys import { MODULE_ISSUES_WITH_PARAMS } from "constants/fetch-keys"; const useGanttChartModuleIssues = ( workspaceSlug: string | undefined, projectId: string | undefined, moduleId: string | undefined ) => { const { orderBy, filters, showSubIssues } = useIssuesView(); const params: any = { order_by: orderBy, type: filters?.type ? filters?.type : undefined, sub_issue: showSubIssues, 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, target_date: filters?.target_date ? filters?.target_date.join(",") : undefined, start_target_date: true, // to fetch only issues with a start and target date }; // all issues under the workspace and project const { data: ganttIssues, mutate: mutateGanttIssues } = useSWR( workspaceSlug && projectId && moduleId ? MODULE_ISSUES_WITH_PARAMS(moduleId.toString(), params) : null, workspaceSlug && projectId && moduleId ? () => modulesService.getModuleIssuesWithParams( workspaceSlug.toString(), projectId.toString(), moduleId.toString(), params ) : null ); return { ganttIssues, mutateGanttIssues, }; }; export default useGanttChartModuleIssues;