'use client'; import { api } from '@/app/_trpc/client'; import { ColorSquare } from '@/components/ColorSquare'; import { Combobox } from '@/components/ui/combobox'; import { useAppParams } from '@/hooks/useAppParams'; import { useDispatch, useSelector } from '@/redux'; import type { IChartBreakdown } from '@/types'; import { SplitIcon } from 'lucide-react'; import { addBreakdown, changeBreakdown, removeBreakdown } from '../reportSlice'; import { ReportBreakdownMore } from './ReportBreakdownMore'; import type { ReportEventMoreProps } from './ReportEventMore'; export function ReportBreakdowns() { const { projectId } = useAppParams(); const selectedBreakdowns = useSelector((state) => state.report.breakdowns); const dispatch = useDispatch(); const propertiesQuery = api.chart.properties.useQuery({ projectId, }); const propertiesCombobox = (propertiesQuery.data ?? []).map((item) => ({ value: item, label: item, // {item}, })); const handleMore = (breakdown: IChartBreakdown) => { const callback: ReportEventMoreProps['onClick'] = (action) => { switch (action) { case 'remove': { return dispatch(removeBreakdown(breakdown)); } } }; return callback; }; return (

Breakdown

{selectedBreakdowns.map((item, index) => { return (
{index} { dispatch( changeBreakdown({ ...item, name: value, }) ); }} items={propertiesCombobox} placeholder="Select..." />
); })} {selectedBreakdowns.length === 0 && ( { dispatch( addBreakdown({ name: value, }) ); }} items={propertiesCombobox} placeholder="Select breakdown" /> )}
); }