Files
supabase/apps/studio/components/interfaces/Database/RestoreToNewProject/PreviousRestoreItem.tsx
Maksym Ionutsa edd58b9b82 fix: match scheduled backups timestamp styling in R2NP tab (#42132)
## I have read the
[CONTRIBUTING.md](https://github.com/supabase/supabase/blob/master/CONTRIBUTING.md)
file.

YES

## What kind of change does this PR introduce?

Align Restore to New Project timestamps with Scheduled Backups by
showing UTC, full date format, and consistent monospace styling

## What is the current behavior?

Restore to New Project shows local time instead of UTC by default +
style

## What is the new behavior?

Unified the style, R2NP timestamp follows the Scheduled backup tab 

## Additional context

<details>
  <summary>
before and after (dont judge my cropping skills)
  </summary>

  <br />

<img
src="https://github.com/user-attachments/assets/3a43e970-79f1-4382-a61f-b36f5f8fe6d1"
alt="CleanShot 2026-01-24 at 23 11 19">
</details>



<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **Style**
* Improved timestamp presentation in backup and restore screens:
consistent UTC display, clearer label format (DD MMM YYYY HH:mm:ss
(ZZ)), tighter monospace styling, and better alignment for enhanced
readability and visual consistency.

<sub>✏️ Tip: You can customize this high-level summary in your review
settings.</sub>
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-01-29 22:28:38 +01:00

51 lines
1.7 KiB
TypeScript

import { ChevronRightIcon } from 'lucide-react'
import Link from 'next/link'
import { CloneStatus } from 'data/projects/clone-status-query'
import { TimestampInfo } from 'ui-patterns'
import { StatusBadge } from './StatusBadge'
export const PreviousRestoreItem = ({ clone }: { clone: CloneStatus['clones'][number] }) => {
if (clone.status === 'REMOVED') {
return (
<div className="grid grid-cols-4 gap-2 text-sm p-4 group">
<div className="min-w-24 truncate">{clone.target_project?.name ?? 'Unknown project'}</div>
<div>
<StatusBadge status={clone.status} />
</div>
<div>
<TimestampInfo
className="text-left !text-sm font-mono tracking-tight text-foreground-lighter"
displayAs="utc"
utcTimestamp={clone.inserted_at ?? ''}
labelFormat="DD MMM YYYY HH:mm:ss (ZZ)"
/>
</div>
</div>
)
} else {
return (
<Link
href={`/project/${clone.target_project?.ref ?? '_'}`}
className="grid grid-cols-4 gap-2 text-sm p-4 group"
>
<div className="min-w-24 truncate">{clone.target_project?.name ?? 'Unknown project'}</div>
<div>
<StatusBadge status={clone.status} />
</div>
<div>
<TimestampInfo
className="text-left !text-sm font-mono tracking-tight text-foreground-lighter"
displayAs="utc"
utcTimestamp={clone.inserted_at ?? ''}
labelFormat="DD MMM YYYY HH:mm:ss (ZZ)"
/>
</div>
<div className="flex items-center justify-end text-foreground-lighter group-hover:text-foreground">
<ChevronRightIcon className="w-4 h-4" />
</div>
</Link>
)
}
}