import { useTranslation } from 'react-i18next'; import { Card } from '@/components/ui/Card'; import { Button } from '@/components/ui/Button'; import styles from '@/pages/UsagePage.module.scss'; export interface ChartLineSelectorProps { chartLines: string[]; modelNames: string[]; maxLines?: number; onChange: (lines: string[]) => void; } export function ChartLineSelector({ chartLines, modelNames, maxLines = 9, onChange }: ChartLineSelectorProps) { const { t } = useTranslation(); const handleAdd = () => { if (chartLines.length >= maxLines) return; const unusedModel = modelNames.find((m) => !chartLines.includes(m)); if (unusedModel) { onChange([...chartLines, unusedModel]); } else { onChange([...chartLines, 'all']); } }; const handleRemove = (index: number) => { if (chartLines.length <= 1) return; const newLines = [...chartLines]; newLines.splice(index, 1); onChange(newLines); }; const handleChange = (index: number, value: string) => { const newLines = [...chartLines]; newLines[index] = value; onChange(newLines); }; return ( {chartLines.length}/{maxLines} } >
{chartLines.map((line, index) => (
{t(`usage_stats.chart_line_label_${index + 1}`)} {chartLines.length > 1 && ( )}
))}

{t('usage_stats.chart_line_hint')}

); }