diff --git a/lib/actions/link-actions.js b/lib/actions/link-actions.js --- a/lib/actions/link-actions.js +++ b/lib/actions/link-actions.js @@ -43,6 +43,7 @@ return { status: response.status, community: response.community, + thread: response.thread, }; } return { diff --git a/native/navigation/invite-link-modal.react.js b/native/navigation/invite-link-modal.react.js --- a/native/navigation/invite-link-modal.react.js +++ b/native/navigation/invite-link-modal.react.js @@ -101,18 +101,16 @@ const threadInfos = useSelector(threadInfoSelector); const closeModal = React.useCallback(() => { - const communityID = invitationDetails.community?.id; - if ( - linkStatus === 'already_joined' && - communityID && - threadInfos[communityID] - ) { - navigateToThread(threadInfos[communityID]); + const threadID = + invitationDetails.thread?.id ?? invitationDetails.community?.id; + if (linkStatus === 'already_joined' && threadID && threadInfos[threadID]) { + navigateToThread(threadInfos[threadID]); } else { props.navigation.goBack(); } }, [ invitationDetails.community?.id, + invitationDetails.thread?.id, linkStatus, navigateToThread, props.navigation, diff --git a/web/invite-links/invite-link-handler.react.js b/web/invite-links/invite-link-handler.react.js --- a/web/invite-links/invite-link-handler.react.js +++ b/web/invite-links/invite-link-handler.react.js @@ -86,17 +86,17 @@ }; } - const communityID = result.community?.id; + const threadID = result.thread?.id ?? result.community?.id; if ( - communityID && + threadID && result.status === 'already_joined' && - threadInfos[communityID] + threadInfos[threadID] ) { dispatch({ type: updateNavInfoActionType, payload: { chatMode: 'view', - activeChatThreadID: communityID, + activeChatThreadID: threadID, tab: 'chat', }, });