diff --git a/web/src/app/home/monitoring/components/overview-cards/SystemStatusCards.tsx b/web/src/app/home/monitoring/components/overview-cards/SystemStatusCards.tsx new file mode 100644 index 00000000..5181fed1 --- /dev/null +++ b/web/src/app/home/monitoring/components/overview-cards/SystemStatusCards.tsx @@ -0,0 +1,157 @@ +import React, { useEffect, useState, useCallback } from 'react'; +import { useTranslation } from 'react-i18next'; +import { Plug, Box, CircleCheck, CircleX, Loader2 } from 'lucide-react'; +import { + ApiRespPluginSystemStatus, + ApiRespBoxStatus, +} from '@/app/infra/entities/api'; +import { httpClient } from '@/app/infra/http/HttpClient'; + +interface StatusCardProps { + icon: React.ReactNode; + title: string; + connected: boolean | null; + connectedLabel: string; + disconnectedLabel: string; + details?: { label: string; value: string }[]; + loading: boolean; +} + +function StatusCard({ + icon, + title, + connected, + connectedLabel, + disconnectedLabel, + details, + loading, +}: StatusCardProps) { + return ( +
{title}
+ {loading ? ( +- {t('plugins.boxStatusLoadFailed')} -
- )} -