From 538cbd22966eb424d512abc43eade44f1f538370 Mon Sep 17 00:00:00 2001 From: Gigi Date: Wed, 22 Oct 2025 12:54:26 +0200 Subject: [PATCH] fix(bookmarks): show sane dates using created_at fallback to listUpdatedAt; guard formatters --- src/components/BookmarkViews/CardView.tsx | 4 ++-- src/components/BookmarkViews/CompactView.tsx | 2 +- src/components/BookmarkViews/LargeView.tsx | 2 +- src/utils/bookmarkUtils.tsx | 6 ++++-- 4 files changed, 8 insertions(+), 6 deletions(-) diff --git a/src/components/BookmarkViews/CardView.tsx b/src/components/BookmarkViews/CardView.tsx index 438e9ecc..ae453d8b 100644 --- a/src/components/BookmarkViews/CardView.tsx +++ b/src/components/BookmarkViews/CardView.tsx @@ -112,10 +112,10 @@ export const CardView: React.FC = ({ title="Open event in search" onClick={(e) => e.stopPropagation()} > - {formatDate(bookmark.created_at)} + {formatDate(bookmark.created_at || bookmark.listUpdatedAt || Math.floor(Date.now() / 1000))} ) : ( - {formatDate(bookmark.created_at)} + {formatDate(bookmark.created_at || bookmark.listUpdatedAt || Math.floor(Date.now() / 1000))} )} diff --git a/src/components/BookmarkViews/CompactView.tsx b/src/components/BookmarkViews/CompactView.tsx index 30edc84a..1c778d8e 100644 --- a/src/components/BookmarkViews/CompactView.tsx +++ b/src/components/BookmarkViews/CompactView.tsx @@ -73,7 +73,7 @@ export const CompactView: React.FC = ({ {bookmark.id.slice(0, 12)}... )} - {formatDateCompact(bookmark.created_at)} + {formatDateCompact(bookmark.created_at || bookmark.listUpdatedAt || Math.floor(Date.now() / 1000))} {/* CTA removed */} diff --git a/src/components/BookmarkViews/LargeView.tsx b/src/components/BookmarkViews/LargeView.tsx index 9f0d1571..9064acdf 100644 --- a/src/components/BookmarkViews/LargeView.tsx +++ b/src/components/BookmarkViews/LargeView.tsx @@ -144,7 +144,7 @@ export const LargeView: React.FC = ({ className="bookmark-date-link" onClick={(e) => e.stopPropagation()} > - {formatDate(bookmark.created_at)} + {formatDate(bookmark.created_at || bookmark.listUpdatedAt || Math.floor(Date.now() / 1000))} )} diff --git a/src/utils/bookmarkUtils.tsx b/src/utils/bookmarkUtils.tsx index cd21550d..50a47b59 100644 --- a/src/utils/bookmarkUtils.tsx +++ b/src/utils/bookmarkUtils.tsx @@ -5,13 +5,15 @@ import ResolvedMention from '../components/ResolvedMention' // Note: RichContent is imported by components directly to keep this file component-only for fast refresh export const formatDate = (timestamp: number) => { - const date = new Date(timestamp * 1000) + const safe = typeof timestamp === 'number' && isFinite(timestamp) && timestamp > 0 ? timestamp : Math.floor(Date.now() / 1000) + const date = new Date(safe * 1000) return formatDistanceToNow(date, { addSuffix: true }) } // Ultra-compact date format for tight spaces (e.g., compact view) export const formatDateCompact = (timestamp: number) => { - const date = new Date(timestamp * 1000) + const safe = typeof timestamp === 'number' && isFinite(timestamp) && timestamp > 0 ? timestamp : Math.floor(Date.now() / 1000) + const date = new Date(safe * 1000) const now = new Date() const seconds = differenceInSeconds(now, date)