import { useRouter } from "next/router"; import useSWR, { mutate } from "swr"; import { Control, UseFormSetValue, useForm } from "react-hook-form"; // hooks import useProjects from "hooks/use-projects"; // components import { AnalyticsGraph, AnalyticsSelectBar, AnalyticsSidebar, AnalyticsTable } from "components/analytics"; // ui import { Loader, PrimaryButton } from "components/ui"; // helpers import { convertResponseToBarGraphData } from "helpers/analytics.helper"; // types import { IAnalyticsParams, IAnalyticsResponse, IUser } from "types"; // fetch-keys import { ANALYTICS } from "constants/fetch-keys"; // services import analyticsService from "services/analytics.service"; type Props = { fullScreen: boolean; user?: IUser | undefined; }; const defaultValues: IAnalyticsParams = { x_axis: "priority", y_axis: "issue_count", segment: null, project: null, }; export const CustomAnalytics: React.FC = ({ fullScreen, user }) => { const router = useRouter(); const { workspaceSlug, projectId } = router.query; const { control, watch, setValue } = useForm({ defaultValues }); const params: IAnalyticsParams = { x_axis: watch("x_axis"), y_axis: watch("y_axis"), segment: watch("segment"), project: watch("project"), }; const { data: analytics, error: analyticsError } = useSWR( workspaceSlug ? ANALYTICS(workspaceSlug.toString(), params) : null, workspaceSlug ? () => analyticsService.getAnalytics(workspaceSlug.toString(), params) : null ); const isProjectLevel = projectId ? true : false; const yAxisKey = params.y_axis === "issue_count" ? "count" : "estimate"; const barGraphData = convertResponseToBarGraphData(analytics?.distribution, params); const { projects } = useProjects(); return (
{!analyticsError ? ( analytics ? ( analytics.total > 0 ? (
) : (

No matching issues found. Try changing the parameters.

) ) : ( ) ) : (

There was some error in fetching the data.

{ if (!workspaceSlug) return; mutate(ANALYTICS(workspaceSlug.toString(), params)); }} > Refresh
)}
); };