You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

117 lines
2.6 KiB

import {
TStatCreatorsGetParams,
TteamChartGetParams,
} from "./../../API/LayoutApi/statistic";
import { useQuery } from "react-query";
import { TStatGetParams, statController } from "../../API/LayoutApi/statistic";
import {
TGeneralChartData,
TGeneralChartGetParams,
} from "../../types/Statistic/TStat";
export const useStatsData = ({
search,
team,
start_date,
end_date,
for_salary,
page,
page_size,
}: TStatGetParams) => {
return useQuery(
[
`stats/all-users/`,
page,
page_size,
search,
team,
start_date,
end_date,
for_salary,
],
() =>
statController.read({
search,
team,
start_date,
end_date,
for_salary,
page,
page_size,
}),
{ refetchOnWindowFocus: false }
);
};
export const useStatTeamData = ({
search,
start_date,
end_date,
page,
page_size,
}: TStatGetParams) => {
return useQuery(
[`stats/all-teams/`, search, start_date, end_date, page_size, page],
() =>
statController.team({ search, start_date, end_date, page, page_size }),
{ refetchOnWindowFocus: false }
);
};
export const useCreatorsData = ({
page,
page_size,
start_date,
end_date,
search,
}: TStatCreatorsGetParams) => {
return useQuery(
[`stats/task-creators/`, search, start_date, end_date, page, page_size],
() =>
statController.creators({
start_date,
end_date,
search,
page,
page_size,
}),
{ refetchOnWindowFocus: false }
);
};
export const useTeamChartData = ({
start_date,
end_date,
}: TteamChartGetParams) => {
return useQuery(
[`stats/teams-line-chart/`, start_date, end_date],
() => statController.teamChart({ start_date, end_date }),
{ refetchOnWindowFocus: false }
);
};
export const useCardData = ({ start_date, end_date }: TStatGetParams) => {
return useQuery(
[`stats/tasks-comparison/`, start_date, end_date],
() => statController.cards({ start_date, end_date }),
{ refetchOnWindowFocus: false }
);
};
export const useStatOne = (statId: number | string | undefined): any => {
return useQuery(
[`stat/${statId || "all"}`, statId],
() => statController.statOne(statId),
{ refetchOnWindowFocus: false }
);
};
export const useGeneralStats = (filterObject: TGeneralChartGetParams) => {
return useQuery<TGeneralChartData, Error>(
["stats/general-stats", filterObject],
() => statController.generalChart(filterObject),
{
refetchOnWindowFocus: false,
keepPreviousData: true,
}
);
};