import type { ReactNode } from 'react' import { ServerIcon } from 'lucide-react' import { PageShell } from './page-shell' import { PageHeader } from './page-header' import { QueryState } from './query-state' import { EmptyState } from './empty-state' import { SectionCardsSkeleton } from './skeletons' interface AnalyticsPageProps { title: string description?: string actions?: ReactNode data: T | undefined isLoading: boolean isError: boolean error?: unknown onRetry?: () => void /** Показать empty, если нет данных для аналитики (например, 0 VPS). */ analyticsEmpty?: boolean emptyTitle?: string emptyDescription?: string emptyAction?: ReactNode skeleton?: ReactNode children: (data: T) => ReactNode } export function AnalyticsPage({ title, description, actions, data, isLoading, isError, error, onRetry, analyticsEmpty, emptyTitle = 'Нет данных для аналитики', emptyDescription = 'Добавьте VPS или дождитесь синхронизации с BILLmanager', emptyAction, skeleton, children, }: AnalyticsPageProps) { return ( } > {(snap) => analyticsEmpty ? ( } title={emptyTitle} description={emptyDescription} action={emptyAction} /> ) : ( children(snap) ) } ) }