https://dev.kronoz.win/r/marzneshin.git
| 1 |
b15ff05 |
Mrdn |
2y ago |
import { FC } from 'react'; |
| 2 |
b15ff05 |
Mrdn |
2y ago |
import { Badge, Label } from '@marzneshin/components'; |
| 3 |
3b7feef |
Mrdn |
2y ago |
import { StatusType } from '@marzneshin/types'; |
| 4 |
3b7feef |
Mrdn |
2y ago |
import { NodesStatus } from '..'; |
| 5 |
b15ff05 |
Mrdn |
2y ago |
|
| 6 |
b15ff05 |
Mrdn |
2y ago |
interface NodesStatusBadgeProps { |
| 7 |
3b7feef |
Mrdn |
2y ago |
status: StatusType; |
| 8 |
b15ff05 |
Mrdn |
2y ago |
} |
| 9 |
b15ff05 |
Mrdn |
2y ago |
|
| 10 |
b15ff05 |
Mrdn |
2y ago |
export const NodesStatusBadge: FC<NodesStatusBadgeProps> = ({ status }) => { |
| 11 |
b15ff05 |
Mrdn |
2y ago |
const { label, icon: Icon } = status; |
| 12 |
b15ff05 |
Mrdn |
2y ago |
|
| 13 |
b15ff05 |
Mrdn |
2y ago |
let badgeVariant: 'outline' | 'destructive' | undefined | null; |
| 14 |
b15ff05 |
Mrdn |
2y ago |
switch (label) { |
| 15 |
b15ff05 |
Mrdn |
2y ago |
case NodesStatus.healthy.label: |
| 16 |
b15ff05 |
Mrdn |
2y ago |
badgeVariant = undefined; |
| 17 |
b15ff05 |
Mrdn |
2y ago |
break; |
| 18 |
b15ff05 |
Mrdn |
2y ago |
case NodesStatus.unhealthy.label: |
| 19 |
b15ff05 |
Mrdn |
2y ago |
badgeVariant = "destructive"; |
| 20 |
b15ff05 |
Mrdn |
2y ago |
break; |
| 21 |
b15ff05 |
Mrdn |
2y ago |
case NodesStatus.disabled.label: |
| 22 |
b15ff05 |
Mrdn |
2y ago |
badgeVariant = "outline"; |
| 23 |
b15ff05 |
Mrdn |
2y ago |
break; |
| 24 |
b15ff05 |
Mrdn |
2y ago |
case "none": |
| 25 |
b15ff05 |
Mrdn |
2y ago |
return null; |
| 26 |
b15ff05 |
Mrdn |
2y ago |
} |
| 27 |
b15ff05 |
Mrdn |
2y ago |
|
| 28 |
b15ff05 |
Mrdn |
2y ago |
return ( |
| 29 |
b15ff05 |
Mrdn |
2y ago |
<Badge variant={badgeVariant} className="h-6"> |
| 30 |
b15ff05 |
Mrdn |
2y ago |
{Icon && <Icon className="mr-1 w-5 h-4" />} <Label className="capitalize">{label}</Label> |
| 31 |
b15ff05 |
Mrdn |
2y ago |
</Badge> |
| 32 |
b15ff05 |
Mrdn |
2y ago |
); |
| 33 |
b15ff05 |
Mrdn |
2y ago |
}; |
| 34 |
b15ff05 |
Mrdn |
2y ago |
|
| 35 |
b15ff05 |
Mrdn |
2y ago |
export default NodesStatusBadge; |