diff --git a/ui/src/components/health/health-priority-card.tsx b/ui/src/components/health/health-priority-card.tsx index e7ec29ac..83c600a5 100644 --- a/ui/src/components/health/health-priority-card.tsx +++ b/ui/src/components/health/health-priority-card.tsx @@ -1,4 +1,12 @@ -import { AlertCircle, AlertTriangle, Copy, Terminal, Wrench, ChevronRight } from 'lucide-react'; +import { + AlertCircle, + AlertTriangle, + Copy, + Terminal, + Wrench, + ChevronRight, + RefreshCw, +} from 'lucide-react'; import { Button } from '@/components/ui/button'; import { motion, AnimatePresence } from 'framer-motion'; import { useFixHealth, type HealthCheck } from '@/hooks/use-health'; @@ -14,7 +22,8 @@ interface HealthPriorityCardProps { export function HealthPriorityCard({ check }: HealthPriorityCardProps) { const { t } = useTranslation(); const fixMutation = useFixHealth(); - const [isExpanded, setIsExpanded] = useState(true); + const hasContent = !!(check.details || check.fix || check.fixable); + const [isExpanded, setIsExpanded] = useState(false); const isError = check.status === 'error'; const Icon = isError ? AlertCircle : AlertTriangle; @@ -44,7 +53,10 @@ export function HealthPriorityCard({ check }: HealthPriorityCardProps) {
-
+
hasContent && setIsExpanded(!isExpanded)} + > {/* Status Icon with Ring */}

{check.name}

- + {hasContent && ( +
+ +
+ )}
-

{check.message}

+

+ {check.message} +

@@ -118,7 +131,11 @@ export function HealthPriorityCard({ check }: HealthPriorityCardProps) { : 'bg-amber-500 hover:bg-amber-600' )} > - + {fixMutation.isPending ? ( + + ) : ( + + )} {t('health.applyFix')} )} diff --git a/ui/src/components/layout/layout.tsx b/ui/src/components/layout/layout.tsx index 0e69960d..9216a2c4 100644 --- a/ui/src/components/layout/layout.tsx +++ b/ui/src/components/layout/layout.tsx @@ -41,7 +41,7 @@ export function Layout() {
-
+
diff --git a/ui/src/pages/health.tsx b/ui/src/pages/health.tsx index 97bf46ab..4a1dbf3f 100644 --- a/ui/src/pages/health.tsx +++ b/ui/src/pages/health.tsx @@ -47,23 +47,28 @@ export function HealthPage() { const hasIssues = priorityChecks.length > 0; return ( -
+
{/* Dynamic Background */} -
+
- {/* Grain overlay */} -
+ {/* Grain overlay - Local SVG data URI for reliability */} +