Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 | 21x 104x 113x 104x 104x 104x 104x 104x 104x 104x 104x 19x 9x 150x 104x 21x | import { useUnderwritingTasksRepository } from "./useUnderwritingTasksRepository";
import { TTaskStatus, TUnderwritingTask } from "../types";
import { useMemo } from "react";
import { useAppSelector } from "@redux/hooks";
import { selectQueryString } from "@redux/slices/search";
import { GENERAL_STALE_TIME_15 } from "../../constants";
export const useListUnderwritingTasks = (
statusFilters: TTaskStatus[],
userTaggedInFilter: string,
) => {
const searchQuery = useAppSelector((state) =>
selectQueryString(state, "items_all_challenges"),
);
const { useGetItems: useGetTaskList } =
useUnderwritingTasksRepository("all_tasks");
const status = statusFilters.flatMap((status) =>
filterMapper[status].map((value) => `status:"${value}"`),
);
let filterParam = "?filter=";
Iif (status.length > 0) filterParam += `%3B(${status.join(",")})`;
Iif (userTaggedInFilter) filterParam += userTaggedInFilter;
filterParam += "&sort=id";
const { data, isLoading, error, isFetching, refetch } = useGetTaskList(filterParam, {
refetchOnWindowFocus: false,
refetchOnMount: false,
staleTime: GENERAL_STALE_TIME_15,
});
const filteredData = useMemo(() => {
if (!data?.data) return [];
return data?.data?.filter((item) =>
(item.merchantTaskName || item.globalTaskName || item.name)
.toLowerCase()
.includes(searchQuery.toLowerCase()),
);
}, [searchQuery, data]);
return {
data: filteredData as TUnderwritingTask[],
isLoading,
isFetching,
error,
refetch,
};
};
const filterMapper = {
open: [1],
in_progress: [2],
ready_for_underwriting: [3],
completed: [4],
};
|