// nivo import { BarDatum } from "@nivo/bar"; // icons import { PriorityIcon } from "components/icons"; // helpers import { addSpaceIfCamelCase } from "helpers/string.helper"; // helpers import { generateBarColor, renderMonthAndYear } from "helpers/analytics.helper"; // types import { IAnalyticsParams, IAnalyticsResponse, TIssuePriorities } from "types"; // constants import { ANALYTICS_X_AXIS_VALUES, ANALYTICS_Y_AXIS_VALUES, DATE_KEYS } from "constants/analytics"; type Props = { analytics: IAnalyticsResponse; barGraphData: { data: BarDatum[]; xAxisKeys: string[]; }; params: IAnalyticsParams; yAxisKey: "count" | "estimate"; }; export const AnalyticsTable: React.FC = ({ analytics, barGraphData, params, yAxisKey }) => { const renderAssigneeName = (assigneeId: string): string => { const assignee = analytics.extras.assignee_details.find((a) => a.assignees__id === assigneeId); if (!assignee) return "No assignee"; return assignee.assignees__display_name || "No assignee"; }; return (
{params.segment ? ( barGraphData.xAxisKeys.map((key) => ( )) ) : ( )} {barGraphData.data.map((item, index) => ( {params.segment ? ( barGraphData.xAxisKeys.map((key, index) => ( )) ) : ( )} ))}
{ANALYTICS_X_AXIS_VALUES.find((v) => v.value === params.x_axis)?.label}
{params.segment === "priority" ? ( ) : ( )} {params.segment === "assignees__id" ? renderAssigneeName(key) : DATE_KEYS.includes(params.segment ?? "") ? renderMonthAndYear(key) : key}
{ANALYTICS_Y_AXIS_VALUES.find((v) => v.value === params.y_axis)?.label}
{params.x_axis === "priority" ? ( ) : ( )} {params.x_axis === "assignees__id" ? renderAssigneeName(`${item.name}`) : addSpaceIfCamelCase(`${item.name}`)} {item[key] ?? 0} {item[yAxisKey]}
); };