import { useState, useCallback } from 'react' import { Route } from 'lucide-react' import { useTranslation } from 'react-i18next' import { ScrollArea } from '@/components/ui/scroll-area' import { useApiInfo } from '@/features/dashboard/hooks/use-status-data' import { testUrlLatency, getDefaultPingStatus, } from '@/features/dashboard/lib/api-info' import type { PingStatusMap, ApiInfoItem } from '@/features/dashboard/types' import { PanelWrapper } from '../ui/panel-wrapper' import { ApiInfoItemComponent } from './api-info-item' export function ApiInfoPanel() { const { t } = useTranslation() const { items: list, loading } = useApiInfo() const [pingStatus, setPingStatus] = useState({}) const handleTest = useCallback(async (url: string) => { setPingStatus((prev) => ({ ...prev, [url]: { latency: null, testing: true, error: false }, })) const result = await testUrlLatency(url) setPingStatus((prev) => ({ ...prev, [url]: result })) }, []) return ( {t('API Info')} } description={t('Configured routes and latency checks')} loading={loading} empty={!list.length} emptyMessage={t('No API routes configured')} height='h-72' contentClassName='p-0' >
{list.map((item: ApiInfoItem, idx: number) => (
))}
) }