From 7618e648da8f93086e00d1feffe6e08a105e9ea4 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?L=C3=A9o?= <leopold.chappuis@savoirfairelinux.com>
Date: Tue, 11 Feb 2025 14:15:36 -0500
Subject: [PATCH] cleanup: move timestamp to number

Change-Id: I65e822746155c9a2367d49606322ea8c61cbc723
---
 client/src/components/ConversationSettingsFileItem.tsx | 2 +-
 client/src/components/ConversationSummaryList.tsx      | 7 +------
 client/src/components/MediaViewer.tsx                  | 4 ++--
 client/src/components/Message.tsx                      | 8 ++++----
 client/src/components/SelectConversationList.tsx       | 2 +-
 common/src/interfaces/conversation.ts                  | 2 +-
 server/src/jamid/jamid.ts                              | 2 +-
 7 files changed, 11 insertions(+), 16 deletions(-)

diff --git a/client/src/components/ConversationSettingsFileItem.tsx b/client/src/components/ConversationSettingsFileItem.tsx
index 95ebba15..fd23103c 100644
--- a/client/src/components/ConversationSettingsFileItem.tsx
+++ b/client/src/components/ConversationSettingsFileItem.tsx
@@ -32,7 +32,7 @@ import MediaViewer from './MediaViewer'
 
 interface ConversationSettingsFileItemProps {
   displayName: string
-  timeStamp: string
+  timeStamp: number
   totalSize: number
   fileId: string
   author: string
diff --git a/client/src/components/ConversationSummaryList.tsx b/client/src/components/ConversationSummaryList.tsx
index 40c44aa4..45f762d1 100644
--- a/client/src/components/ConversationSummaryList.tsx
+++ b/client/src/components/ConversationSummaryList.tsx
@@ -61,12 +61,7 @@ export const ConversationSummaryList = ({ conversationsSummaries }: Conversation
     if (conversationsSummaries.some((conversationSummary) => conversationSummary === null)) {
       return conversationsSummaries
     }
-
-    return [...conversationsSummaries].sort((a, b) => {
-      const aTimestamp = a?.lastMessage?.timestamp ? Number(a.lastMessage.timestamp) : 0
-      const bTimestamp = b?.lastMessage?.timestamp ? Number(b.lastMessage.timestamp) : 0
-      return bTimestamp - aTimestamp
-    })
+    return [...conversationsSummaries].sort((a, b) => b.lastMessage.timestamp - a.lastMessage.timestamp)
   }, [conversationsSummaries])
 
   return (
diff --git a/client/src/components/MediaViewer.tsx b/client/src/components/MediaViewer.tsx
index 26a08bc7..f71f1571 100644
--- a/client/src/components/MediaViewer.tsx
+++ b/client/src/components/MediaViewer.tsx
@@ -39,7 +39,7 @@ interface MediaViewerProps {
   member?: ConversationMember
   handleDownload?: () => void
   type?: string
-  timeStamp?: string
+  timeStamp?: number
 }
 
 export default function MediaViewer({
@@ -111,7 +111,7 @@ export default function MediaViewer({
     }
   }
 
-  const displayTime = dayjs.unix(Number(timeStamp))
+  const displayTime = dayjs.unix(timeStamp || 0)
   const formattedTime = displayTime.format('YYYY-MM-DD HH:mm')
 
   return (
diff --git a/client/src/components/Message.tsx b/client/src/components/Message.tsx
index 54391360..51d3c9f6 100644
--- a/client/src/components/Message.tsx
+++ b/client/src/components/Message.tsx
@@ -778,8 +778,8 @@ const UserMessageRow = memo(
     const { t } = useTranslation()
     const previousIsUserMessageType = checkIsUserMessageType(previousMessage?.type)
     const nextIsUserMessageType = checkIsUserMessageType(nextMessage?.type)
-    const nextTime = dayjs.unix(Number(nextMessage?.timestamp))
-    const sentTime = dayjs.unix(Number(message.timestamp))
+    const nextTime = dayjs.unix(nextMessage?.timestamp || 0)
+    const sentTime = dayjs.unix(message.timestamp)
     const nextShowsTime = checkShowsTime(nextTime, sentTime)
     const isFirstOfGroup = showsTime || !previousIsUserMessageType || previousMessage?.author !== message.author
     const isLastOfGroup = nextShowsTime || !nextIsUserMessageType || message.author !== nextMessage?.author
@@ -1388,8 +1388,8 @@ interface MessageProps {
 }
 
 export const MessageRow = memo(({ message, isAccountMessage, author, previousMessage, nextMessage }: MessageProps) => {
-  const time = dayjs.unix(Number(message.timestamp))
-  const previousTime = dayjs.unix(Number(previousMessage?.timestamp))
+  const time = dayjs.unix(message.timestamp)
+  const previousTime = dayjs.unix(previousMessage?.timestamp || 0)
   const showDate =
     message?.type === 'initial' || previousTime.year() !== time.year() || previousTime.dayOfYear() !== time.dayOfYear()
   const showTime = checkShowsTime(time, previousTime)
diff --git a/client/src/components/SelectConversationList.tsx b/client/src/components/SelectConversationList.tsx
index 4233b498..cbc8e614 100644
--- a/client/src/components/SelectConversationList.tsx
+++ b/client/src/components/SelectConversationList.tsx
@@ -51,7 +51,7 @@ export const SelectConversationList = ({
     if (conversationsSummaries.some((conversationSummary) => conversationSummary === null)) {
       return conversationsSummaries
     }
-    return [...conversationsSummaries].sort((a, b) => Number(b.lastMessage.timestamp) - Number(a.lastMessage.timestamp))
+    return [...conversationsSummaries].sort((a, b) => b.lastMessage.timestamp - a.lastMessage.timestamp)
   }, [conversationsSummaries])
 
   return (
diff --git a/common/src/interfaces/conversation.ts b/common/src/interfaces/conversation.ts
index 2e9c6ff8..fdf0a7ec 100644
--- a/common/src/interfaces/conversation.ts
+++ b/common/src/interfaces/conversation.ts
@@ -37,7 +37,7 @@ export interface Reaction {
 export interface Message {
   id: string
   author: string
-  timestamp: string
+  timestamp: number
   type:
     | 'application/call-history+json'
     | 'application/data-transfer+json'
diff --git a/server/src/jamid/jamid.ts b/server/src/jamid/jamid.ts
index 1b75d7b8..10770a06 100644
--- a/server/src/jamid/jamid.ts
+++ b/server/src/jamid/jamid.ts
@@ -96,7 +96,7 @@ export class Jamid {
       author: message.body.author,
       linearizedParent: message.linearizedParent,
       parents: message.body.parents,
-      timestamp: message.body.timestamp,
+      timestamp: message.body.timestamp ? Number(message.body.timestamp) : 0,
       duration: message.body.duration,
       displayName: message.body.displayName,
       sha3sum: message.body.sha3sum,
-- 
GitLab