"use client"; import { FC, Fragment } from "react"; import { observer } from "mobx-react"; // plane ui import { Loader } from "@plane/ui"; // components import ProgressChart from "@/components/core/sidebar/progress-chart"; import { validateCycleSnapshot } from "@/components/cycles"; // helpers import { getDate } from "@/helpers/date-time.helper"; // hooks import { useCycle } from "@/hooks/store"; type ProgressChartProps = { workspaceSlug: string; projectId: string; cycleId: string; }; export const SidebarChart: FC = observer((props) => { const { workspaceSlug, projectId, cycleId } = props; // hooks const { getEstimateTypeByCycleId, getCycleById } = useCycle(); // derived data const cycleDetails = validateCycleSnapshot(getCycleById(cycleId)); const cycleStartDate = getDate(cycleDetails?.start_date); const cycleEndDate = getDate(cycleDetails?.end_date); const totalEstimatePoints = cycleDetails?.total_estimate_points || 0; const totalIssues = cycleDetails?.total_issues || 0; const estimateType = getEstimateTypeByCycleId(cycleId); const chartDistributionData = estimateType === "points" ? cycleDetails?.estimate_distribution : cycleDetails?.distribution || undefined; const completionChartDistributionData = chartDistributionData?.completion_chart || undefined; if (!workspaceSlug || !projectId || !cycleId) return null; return (
Ideal
Current
{cycleStartDate && cycleEndDate && completionChartDistributionData ? ( ) : ( )}
); });