WorkflowCard.tsx 1.4 KB

123456789101112131415161718192021222324252627282930313233
  1. import { ArrowRight, GitBranch } from "lucide-react";
  2. import { Link } from "react-router-dom";
  3. import { StatusBadge } from "@/components/shared/StatusBadge";
  4. import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card";
  5. import type { WorkflowDefinition } from "@/types";
  6. export function WorkflowCard({ workflow }: { workflow: WorkflowDefinition }) {
  7. return (
  8. <Card>
  9. <CardHeader>
  10. <div className="flex items-start justify-between gap-3">
  11. <div className="grid h-10 w-10 place-items-center rounded-md bg-primary/15 text-primary">
  12. <GitBranch className="h-5 w-5" />
  13. </div>
  14. <StatusBadge status={workflow.latest_version_no > 0 ? "active" : "draft"} />
  15. </div>
  16. <CardTitle className="truncate">{workflow.name}</CardTitle>
  17. </CardHeader>
  18. <CardContent>
  19. <div className="space-y-2 text-sm text-muted-foreground">
  20. <p>{workflow.workflow_type}</p>
  21. <p>{workflow.latest_version_no} versions</p>
  22. </div>
  23. <Link
  24. to={`/workflows/${workflow.id}/editor`}
  25. className="mt-5 inline-flex h-10 w-full items-center justify-center gap-2 rounded-md bg-primary px-4 text-sm font-medium text-primary-foreground hover:bg-primary/90"
  26. >
  27. Edit <ArrowRight className="h-4 w-4" />
  28. </Link>
  29. </CardContent>
  30. </Card>
  31. );
  32. }