import { useQuery } from '@tanstack/react-query' import { getRouteApi } from '@tanstack/react-router' import { useTranslation } from 'react-i18next' import { formatLogQuota } from '@/lib/format' import { cn } from '@/lib/utils' import { useIsAdmin } from '@/hooks/use-admin' import { Skeleton } from '@/components/ui/skeleton' import { getLogStats, getUserLogStats } from '../api' import { DEFAULT_LOG_STATS } from '../constants' import { buildApiParams } from '../lib/utils' import { useUsageLogsContext } from './usage-logs-provider' const route = getRouteApi('/_authenticated/usage-logs/$section') function StatBadge(props: { label: string value: string | number accent: string }) { return ( {props.label} {props.value} ) } export function CommonLogsStats() { const { t } = useTranslation() const isAdmin = useIsAdmin() const searchParams = route.useSearch() const { sensitiveVisible } = useUsageLogsContext() const { data: stats, isLoading } = useQuery({ queryKey: ['usage-logs-stats', isAdmin, searchParams], queryFn: async () => { const params = buildApiParams({ page: 1, pageSize: 1, searchParams, columnFilters: [], isAdmin, }) const result = isAdmin ? await getLogStats(params) : await getUserLogStats(params) return result.success ? result.data || DEFAULT_LOG_STATS : DEFAULT_LOG_STATS }, placeholderData: (previousData) => previousData, }) if (isLoading) { return (
) } return (
) }