/* Copyright (C) 2023-2026 QuantumNous This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . For commercial licensing, please contact support@quantumnous.com */ import { useState } from 'react' import { Save, Settings2 } from 'lucide-react' import { useTranslation } from 'react-i18next' import type { TimeGranularity } from '@/lib/time' import { Button } from '@/components/ui/button' import { Label } from '@/components/ui/label' import { Select, SelectContent, SelectGroup, SelectItem, SelectTrigger, SelectValue, } from '@/components/ui/select' import { Dialog } from '@/components/dialog' import { CONSUMPTION_DISTRIBUTION_CHART_OPTIONS, MODEL_ANALYTICS_CHART_OPTIONS, TIME_GRANULARITY_OPTIONS, TIME_RANGE_PRESETS, } from '@/features/dashboard/constants' import type { ConsumptionDistributionChartType, DashboardChartPreferences, ModelAnalyticsChartTab, } from '@/features/dashboard/types' interface ModelsChartPreferencesProps { preferences: DashboardChartPreferences onPreferencesChange: (preferences: DashboardChartPreferences) => void } export function ModelsChartPreferences(props: ModelsChartPreferencesProps) { const { t } = useTranslation() const [open, setOpen] = useState(false) const [draft, setDraft] = useState( props.preferences ) const handleOpenChange = (nextOpen: boolean) => { if (nextOpen) setDraft(props.preferences) setOpen(nextOpen) } const handleSave = () => { props.onPreferencesChange(draft) setOpen(false) } return ( {t('Preferences')} } title={t('Model Analytics Defaults')} description={t('Set default ranges and charts for model analytics.')} contentClassName='sm:max-w-md' contentHeight='auto' bodyClassName='grid gap-3' footer={ } >
) }