+ {messages.length === 0 && (
+
No messages yet. Say hi 👋
+ )}
+ {messages.map((m, i) => {
+ const sender = profilesById[m.sender_id];
+ const prev = messages[i - 1];
+ const showHeader = !prev || prev.sender_id !== m.sender_id || new Date(m.created_at).getTime() - new Date(prev.created_at).getTime() > 5 * 60 * 1000;
+ return (
+
+ {showHeader && (
+
+ {initials(sender?.full_name || sender?.email || "?")}
+
+ )}
+
+ {showHeader && (
+
+ {sender?.full_name || sender?.email || "Unknown"}
+
+ {new Date(m.created_at).toLocaleString([], { hour: "numeric", minute: "2-digit", month: "short", day: "numeric" })}
+
+
+ )}
+ {m.body &&
{renderBody(m.body)}
}
+ {(attachments[m.id] || []).map((a) => (
+
+ ))}
+
+
+ );
+ })}
+
+ {pendingFiles.length > 0 && (
+
+ {pendingFiles.map((f, i) => (
+
+
+ {f.name}
+
+
+ ))}
+
+ )}
+ {mentionOpen && mentionMatches.length > 0 && (
+
+ {mentionMatches.map((p) => (
+
+ ))}
+
+ )}
+
+