From bf97061a388e475aa24ab811072bfb42d6f75c1c Mon Sep 17 00:00:00 2001 From: pradeepkumar Date: Fri, 20 Mar 2026 02:41:07 +0530 Subject: [PATCH] feat: Implement mobile responsive layout for the messaging page, enabling toggling between the conversation list and chat view on smaller screens. --- src/components/message/MessagingPage.tsx | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/src/components/message/MessagingPage.tsx b/src/components/message/MessagingPage.tsx index f24e916..9dc05cf 100644 --- a/src/components/message/MessagingPage.tsx +++ b/src/components/message/MessagingPage.tsx @@ -163,6 +163,7 @@ export function MessagingPage({ initialConversationId }: { initialConversationId const [isStartingConversation, setIsStartingConversation] = useState(null); const [isComposeOpen, setIsComposeOpen] = useState(false); const [isReportModalOpen, setIsReportModalOpen] = useState(false); + const [showMobileChat, setShowMobileChat] = useState(false); // Store converted avatar URLs by conversation ID const [conversationAvatarUrls, setConversationAvatarUrls] = useState>({}); // Store converted file URLs by message ID (for S3-stored images/files) @@ -314,6 +315,7 @@ export function MessagingPage({ initialConversationId }: { initialConversationId ) { initialConvHandledRef.current = initialConversationId; selectConversation(initialConversationId); + setShowMobileChat(true); } }, [initialConversationId, conversations, isLoading, selectConversation]); @@ -687,8 +689,8 @@ export function MessagingPage({ initialConversationId }: { initialConversationId {/* Main content */}
- {/* Left sidebar - Conversation list */} -
+ {/* Left sidebar - Conversation list (hidden on mobile when chat is open) */} +
{isLoading || isLoadingAgents ? (
@@ -779,7 +781,7 @@ export function MessagingPage({ initialConversationId }: { initialConversationId {filteredConversations.map((conversation) => (
selectConversation(conversation.id)} + onClick={() => { selectConversation(conversation.id); setShowMobileChat(true); }} className="relative flex items-start gap-3 p-4 rounded-[15px] cursor-pointer transition-colors hover:bg-[#00293d]/5" style={{ border: '1px solid rgba(0, 41, 61, 0.1)' }} > @@ -837,10 +839,20 @@ export function MessagingPage({ initialConversationId }: { initialConversationId )}
- {/* Right panel - Chat area */} -
+ {/* Right panel - Chat area (full width on mobile, hidden when no conversation on mobile) */} +
{currentConversation && selectedUserInfo ? ( <> + {/* Mobile back button */} + {/* Chat header */}