import { useTranslation } from 'react-i18next'; import type { ChartOptions } from 'chart.js'; import { Line } from 'react-chartjs-2'; import { Card } from '@/components/ui/Card'; import { Button } from '@/components/ui/Button'; import type { ChartData } from '@/utils/usage'; import { getHourChartMinWidth } from '@/utils/usage/chartConfig'; import styles from '@/pages/UsagePage.module.scss'; export interface UsageChartProps { title: string; period: 'hour' | 'day'; onPeriodChange: (period: 'hour' | 'day') => void; chartData: ChartData; chartOptions: ChartOptions<'line'>; loading: boolean; isMobile: boolean; emptyText: string; } export function UsageChart({ title, period, onPeriodChange, chartData, chartOptions, loading, isMobile, emptyText }: UsageChartProps) { const { t } = useTranslation(); return ( } > {loading ? (
{t('common.loading')}
) : chartData.labels.length > 0 ? (
{chartData.datasets.map((dataset, index) => (
{dataset.label}
))}
) : (
{emptyText}
)}
); }