diff --git a/src/screens/Messages/ChatList.tsx b/src/screens/Messages/ChatList.tsx index 83c4b0c004..387fcd2bd1 100644 --- a/src/screens/Messages/ChatList.tsx +++ b/src/screens/Messages/ChatList.tsx @@ -451,6 +451,12 @@ export function Header({ const {gtMobile} = useBreakpoints() const requireEmailVerification = useRequireEmailVerification() const leftConvos = useLeftConvos() + const {isWithinSplitView} = useIsWithinSplitView() + + // In split view, the left column (and this header) stays mounted while the + // right column shows the selected route. Pushing would stack duplicate routes + // on repeated clicks, so navigate instead to dedupe by route + params. + const action = isWithinSplitView ? 'navigate' : 'push' const {data: unreadInboxData, hasNextPage: hasMoreRequests} = useListConvosQuery({ @@ -494,9 +500,11 @@ export function Header({ count={inboxAllConvos.length} more={hasMoreRequests} variant="solid" + action={action} />