diff --git a/ts/components/conversation/ConversationRequestButtons.tsx b/ts/components/conversation/ConversationRequestButtons.tsx index 583780f26..068004749 100644 --- a/ts/components/conversation/ConversationRequestButtons.tsx +++ b/ts/components/conversation/ConversationRequestButtons.tsx @@ -15,6 +15,7 @@ import { getSelectedConversation } from '../../state/selectors/conversations'; import { SessionButton, SessionButtonColor, SessionButtonType } from '../basic/SessionButton'; export const ConversationMessageRequestButtons = () => { + const dispatch = useDispatch(); const selectedConversation = useSelector(getSelectedConversation); const [hasIncoming, setHasIncomingMsgs] = useState(false); const [incomingChecked, setIncomingChecked] = useState(false); @@ -43,11 +44,9 @@ export const ConversationMessageRequestButtons = () => { return null; } - const showMsgRequestUI = - !selectedConversation.isApproved && - !selectedConversation.isApproved && - selectedConversation.type === 'private'; - const dispatch = useDispatch(); + const showMsgRequestUI = getConversationController() + .get(selectedConversation.id) + .isRequest(); const handleDeclineConversationRequest = () => { dispatch( diff --git a/ts/components/conversation/ConversationRequestInfo.tsx b/ts/components/conversation/ConversationRequestInfo.tsx index a2b786298..a7e5dfcf1 100644 --- a/ts/components/conversation/ConversationRequestInfo.tsx +++ b/ts/components/conversation/ConversationRequestInfo.tsx @@ -3,12 +3,16 @@ import { useSelector } from 'react-redux'; import styled from 'styled-components'; import { getMessageCountByType } from '../../data/data'; import { MessageDirection } from '../../models/messageType'; +import { getConversationController } from '../../session/conversations'; import { getSelectedConversation } from '../../state/selectors/conversations'; export const ConversationRequestinfo = () => { const selectedConversation = useSelector(getSelectedConversation); const showMsgRequestUI = - !selectedConversation?.isApproved && selectedConversation?.type === 'private'; + selectedConversation && + getConversationController() + .get(selectedConversation.id) + .isRequest(); const [hasIncomingMessages, setHasIncomingMessages] = useState(false); const [incomingChecked, setIncomingChecked] = useState(false); diff --git a/ts/state/selectors/conversations.ts b/ts/state/selectors/conversations.ts index c9afdc5f4..21475aebb 100644 --- a/ts/state/selectors/conversations.ts +++ b/ts/state/selectors/conversations.ts @@ -14,7 +14,7 @@ import { import { getIntl, getOurNumber } from './user'; import { BlockedNumberController } from '../../util'; -import { ConversationTypeEnum } from '../../models/conversation'; +import { ConversationModel, ConversationTypeEnum } from '../../models/conversation'; import { LocalizerType } from '../../types/Util'; import { ConversationHeaderTitleProps } from '../../components/conversation/ConversationHeader'; import _ from 'lodash'; @@ -444,12 +444,13 @@ const _getConversationRequests = ( sortedConversations: Array ): Array => { return _.filter(sortedConversations, conversation => { - return ( - !conversation.isApproved && - !conversation.isBlocked && - conversation.isPrivate && - !conversation.isMe - ); + const isRequest = ConversationModel.hasValidRequestValues({ + isApproved: conversation.isApproved, + isBlocked: !conversation.isBlocked, + isPrivate: conversation.isPrivate, + isMe: conversation.isMe, + }); + return isRequest; }); };