diff --git a/ui/colony/src/App.tsx b/ui/colony/src/App.tsx index 25b6c7e..b81e1d5 100644 --- a/ui/colony/src/App.tsx +++ b/ui/colony/src/App.tsx @@ -214,7 +214,17 @@ export default function App() { channelId={activeChannelId} replyTo={replyTo} onClearReply={() => setReplyTo(null)} - onMessageSent={loadMessages} + onMessageSent={() => { + loadMessages(); + // Force scroll to bottom after sending + setTimeout(() => { + if (scrollRef.current) { + const el = scrollRef.current as unknown as HTMLElement; + const viewport = el.querySelector('[data-slot="scroll-area-viewport"]') || el; + viewport.scrollTop = viewport.scrollHeight; + } + }, 100); + }} /> )} diff --git a/ui/colony/src/components/MessageItem.tsx b/ui/colony/src/components/MessageItem.tsx index c771b83..3e349d7 100644 --- a/ui/colony/src/components/MessageItem.tsx +++ b/ui/colony/src/components/MessageItem.tsx @@ -149,26 +149,31 @@ export function MessageItem({ message, replyTarget, onReply, onDelete, currentUs - {/* Actions */} -
+
+ + {/* Floating action pill — top-right, appears on hover */} + {!isDeleted && ( +
- {!isDeleted && message.user.username === currentUsername && ( + {message.user.username === currentUsername && ( )}
- + )} {/* Content */}