NORY-42: add status card component

This commit is contained in:
Markus Thielker 2024-12-27 10:28:22 +01:00
parent 65f04668f0
commit f86a5ba9a1
No known key found for this signature in database

View file

@ -0,0 +1,62 @@
import { Card, CardDescription, CardFooter, CardHeader, CardTitle } from '@/components/ui/card';
import { Badge } from '@/components/ui/badge';
import { Tooltip, TooltipContent, TooltipTrigger } from '@/components/ui/tooltip';
export type MetadataApiReady = {
status?: 'ok',
errors?: string[]
}
interface StatusCardProps {
title: string;
version?: string;
name: string;
status: MetadataApiReady;
className?: string;
}
export function StatusCard({ title, version, name, status, className }: StatusCardProps) {
return (
<Card className={className}>
<CardHeader>
<CardTitle>
{title}
</CardTitle>
<CardDescription>
{
version ?
<span>Version {version}</span>
:
<span>OFFLINE</span>
}
</CardDescription>
</CardHeader>
<CardFooter className="space-x-1">
{
status.status && (
<Badge variant="success">
{name} {status.status.toUpperCase()}
</Badge>
)
}
{
status.errors && (
<Tooltip>
<TooltipTrigger>
<Badge variant="destructive">
{name} Error
</Badge>
</TooltipTrigger>
<TooltipContent>
{
status.errors.map((error) => <span>{error}</span>)
}
</TooltipContent>
</Tooltip>
)
}
</CardFooter>
</Card>
);
}