import { Card, CardContent, CardHeader, CardTitle } from '@kit/ui/card'; import { Page, PageBody, PageHeader } from '@kit/ui/page'; import { loadDashboardKitPrerequisites } from './lib/prerequisites-dashboard.loader'; import { loadDashboardKitStatus } from './lib/status-dashboard.loader'; import { ServiceCard } from '@/components/status-tile'; export default async function DashboardPage() { const [status, prerequisites] = await Promise.all([ loadDashboardKitStatus(), loadDashboardKitPrerequisites(), ]); const failedRequiredCount = prerequisites.prerequisites.filter( (item) => item.required && item.status === 'fail', ).length; const warnCount = prerequisites.prerequisites.filter( (item) => item.status === 'warn', ).length; const failedRequired = prerequisites.prerequisites.filter( (item) => item.required && item.status === 'fail', ); const prerequisiteRemedies = Array.from( new Set( failedRequired.flatMap((item) => [ ...(item.remedies ?? []), ...(item.install_command ? [item.install_command] : []), ...(item.install_url ? [item.install_url] : []), ]), ), ); return (
{failedRequired.length > 0 ? ( Prerequisites Details

Missing or Mismatched

    {failedRequired.map((item) => (
  • {item.name} {item.version ? ` (installed ${item.version}, requires >= ${item.minimum_version})` : ' (not installed)'}
  • ))}

Remediation

    {prerequisiteRemedies.map((remedy) => (
  • {remedy}
  • ))}
) : null}
); }