feat(messaging-ui): message timestamps + group/channel settings panel (0.1.5)

- Every message now shows a Slack-style time (clock today, then 'Yesterday',
  weekday, else a date; full timestamp on hover).
- New ConversationSettings panel for groups AND channels (public + private):
  rename, member list, add people (from the directory), remove, and leave.
  Opened from a new thread header gear; DMs show no gear. Adapter gains
  addMember/removeMember/renameConversation (optional, OPA still gates writes).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-07-23 12:54:47 +05:30
parent aa73dee05d
commit 416cf59dc2
9 changed files with 350 additions and 3 deletions
@@ -34,6 +34,7 @@ export function Messenger() {
const channels = useMemo(() => conversations.filter((c) => c.membership === 'channel'), [conversations]);
const dms = useMemo(() => conversations.filter((c) => c.membership !== 'channel'), [conversations]);
const selectedConversation = useMemo(() => conversations.find((c) => c.threadId === selected) ?? null, [conversations, selected]);
function pick(threadId: string): void {
setBrowsing(false);
@@ -104,7 +105,16 @@ export function Messenger() {
}}
/>
) : (
<Thread threadId={selected} activeRootId={activeRoot} onOpenThread={setActiveRoot} />
<Thread
threadId={selected}
conversation={selectedConversation}
activeRootId={activeRoot}
onOpenThread={setActiveRoot}
onLeft={() => {
refetch();
setSelected(null);
}}
/>
)}
</section>