From 728365f2faca00c86d8e8ee063e7b9c7edab2828 Mon Sep 17 00:00:00 2001 From: Akshay Date: Tue, 4 Nov 2025 15:25:14 +0530 Subject: [PATCH] feat(messages): Enhance mobile responsiveness for messaging interface - Add responsive design for messages page with mobile-first approach - Implement dynamic layout changes for conversation list and message view - Add mobile-specific navigation between conversation list and message view - Adjust font sizes, padding, and button visibility for smaller screens - Improve UI/UX for mobile users with back button and condensed labels - Hide/show conversation list and message view based on selected conversation - Reduce text and button sizes for better mobile readability - Add mobile-specific back navigation for conversations --- app/protected/messages/page.tsx | 46 +++++++++++++++++++----- components/messages/ConversationList.tsx | 8 ++--- components/messages/MessageInput.tsx | 8 ++--- components/messages/TypingIndicator.tsx | 12 +------ hooks/useMessages.ts | 19 ++++++++-- 5 files changed, 63 insertions(+), 30 deletions(-) diff --git a/app/protected/messages/page.tsx b/app/protected/messages/page.tsx index 8e4ee619..5e7c9a00 100644 --- a/app/protected/messages/page.tsx +++ b/app/protected/messages/page.tsx @@ -59,11 +59,12 @@ export default function MessagesPage() {
-

Messages

+

Messages

@@ -71,8 +72,11 @@ export default function MessagesPage() { {/* Main Content */}
- {/* Sidebar - Conversation List */} -
+ {/* Sidebar - Conversation List (Hidden on mobile when conversation is selected) */} +
{/* Search */}
@@ -97,12 +101,36 @@ export default function MessagesPage() {
- {/* Main Area - Conversation View */} -
+ {/* Main Area - Conversation View (Hidden on mobile when no conversation selected) */} +
{selectedConversationId && selectedConversation && ( -
-
-

{conversationName}

+
+
+ {/* Back button for mobile */} + +

{conversationName}

{!selectedConversation.is_group && selectedConversation.other_user && selectedConversation.other_user.id ? (
- 0 && 'text-primary')}> + 0 && 'text-primary')}> {name} {conversation.last_message_at && ( - + {formatDistanceToNow(new Date(conversation.last_message_at), { addSuffix: true })} )}

0 ? 'font-medium text-foreground' : 'text-muted-foreground' )}> {conversation.last_message_content || 'No messages yet'}

{conversation.unread_count > 0 && ( - + {conversation.unread_count} )} diff --git a/components/messages/MessageInput.tsx b/components/messages/MessageInput.tsx index c3ccaa43..566f274c 100644 --- a/components/messages/MessageInput.tsx +++ b/components/messages/MessageInput.tsx @@ -90,7 +90,7 @@ export function MessageInput({ onSend, disabled, placeholder = 'Type a message.. }, [content, isTyping, onTyping]) return ( -
+