PreviousRestoreItem.tsx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. import { ChevronRightIcon } from 'lucide-react'
  2. import Link from 'next/link'
  3. import { TimestampInfo } from 'ui-patterns'
  4. import { StatusBadge } from './StatusBadge'
  5. import { CloneStatus } from '@/data/projects/clone-status-query'
  6. export const PreviousRestoreItem = ({ clone }: { clone: CloneStatus['clones'][number] }) => {
  7. if (clone.status === 'REMOVED') {
  8. return (
  9. <div className="grid grid-cols-4 gap-2 text-sm p-4 group">
  10. <div className="min-w-24 truncate">{clone.target_project?.name ?? 'Unknown project'}</div>
  11. <div>
  12. <StatusBadge status={clone.status} />
  13. </div>
  14. <div>
  15. <TimestampInfo
  16. className="text-left text-sm! font-mono tracking-tight text-foreground-lighter"
  17. displayAs="utc"
  18. utcTimestamp={clone.inserted_at ?? ''}
  19. labelFormat="DD MMM YYYY HH:mm:ss (ZZ)"
  20. />
  21. </div>
  22. </div>
  23. )
  24. } else {
  25. return (
  26. <Link
  27. href={`/project/${clone.target_project?.ref ?? '_'}`}
  28. className="grid grid-cols-4 gap-2 text-sm p-4 group"
  29. >
  30. <div className="min-w-24 truncate">{clone.target_project?.name ?? 'Unknown project'}</div>
  31. <div>
  32. <StatusBadge status={clone.status} />
  33. </div>
  34. <div>
  35. <TimestampInfo
  36. className="text-left text-sm! font-mono tracking-tight text-foreground-lighter"
  37. displayAs="utc"
  38. utcTimestamp={clone.inserted_at ?? ''}
  39. labelFormat="DD MMM YYYY HH:mm:ss (ZZ)"
  40. />
  41. </div>
  42. <div className="flex items-center justify-end text-foreground-lighter group-hover:text-foreground">
  43. <ChevronRightIcon className="w-4 h-4" />
  44. </div>
  45. </Link>
  46. )
  47. }
  48. }