NORY-42: add status card component
This commit is contained in:
parent
65f04668f0
commit
f86a5ba9a1
1 changed files with 62 additions and 0 deletions
62
dashboard/src/components/status-card.tsx
Normal file
62
dashboard/src/components/status-card.tsx
Normal 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>
|
||||
);
|
||||
}
|
Loading…
Add table
Reference in a new issue