diff --git a/ts/receiver/contentMessage.ts b/ts/receiver/contentMessage.ts index 79fda74cb..210d35950 100644 --- a/ts/receiver/contentMessage.ts +++ b/ts/receiver/contentMessage.ts @@ -7,20 +7,17 @@ import _, * as Lodash from 'lodash'; import { PubKey } from '../session/types'; import { BlockedNumberController } from '../util/blockedNumberController'; -import { GroupUtils, ToastUtils, UserUtils } from '../session/utils'; +import { GroupUtils, UserUtils } from '../session/utils'; import { fromHexToArray, toHex } from '../session/utils/String'; import { concatUInt8Array, getSodium } from '../session/crypto'; import { getConversationController } from '../session/conversations'; import { ECKeyPair } from './keypairs'; import { handleConfigurationMessage } from './configMessage'; -import { ConversationTypeEnum } from '../models/conversation'; import { removeMessagePadding } from '../session/crypto/BufferPadding'; import { perfEnd, perfStart } from '../session/utils/Performance'; import { getAllCachedECKeyPair } from './closedGroups'; import { handleCallMessage } from './callMessage'; import { SettingsKey } from '../data/settings-key'; -import { showMessageRequestBanner } from '../state/ducks/userConfig'; -import { useUpdate } from 'react-use'; export async function handleContentMessage(envelope: EnvelopePlus, messageHash: string) { try { @@ -347,19 +344,6 @@ export async function innerHandleContentMessage( } } - const newConvo = await getConversationController().getOrCreateAndWait( - envelope.source, - ConversationTypeEnum.PRIVATE - ); - - if ( - newConvo.isPrivate() && - !newConvo.isApproved() && - window.inboxStore?.getState().userConfig.hideMessageRequests - ) { - window.inboxStore?.dispatch(showMessageRequestBanner()); - } - if (content.dataMessage) { if (content.dataMessage.profileKey && content.dataMessage.profileKey.length === 0) { content.dataMessage.profileKey = null; diff --git a/ts/receiver/queuedJob.ts b/ts/receiver/queuedJob.ts index 27e9cfab4..1e2e2a7d0 100644 --- a/ts/receiver/queuedJob.ts +++ b/ts/receiver/queuedJob.ts @@ -10,6 +10,8 @@ import { getMessageById, getMessagesBySentAt } from '../../ts/data/data'; import { MessageModelPropsWithoutConvoProps, messagesAdded } from '../state/ducks/conversations'; import { updateProfileOneAtATime } from './dataMessage'; import Long from 'long'; +import { forceSyncConfigurationNowIfNeeded } from '../session/utils/syncUtils'; +import { showMessageRequestBanner } from '../state/ducks/userConfig'; function contentTypeSupported(type: string): boolean { const Chrome = window.Signal.Util.GoogleChrome; @@ -224,6 +226,19 @@ async function handleRegularMessage( await handleSyncedReceipts(message, conversation); } + if ( + conversation.isPrivate() && + !conversation.isApproved() && + window.inboxStore?.getState().userConfig.hideMessageRequests + ) { + window.inboxStore?.dispatch(showMessageRequestBanner()); + } + + if (!conversation.didApproveMe()) { + conversation.setDidApproveMe(true); + await forceSyncConfigurationNowIfNeeded(); + } + const conversationActiveAt = conversation.get('active_at'); if (!conversationActiveAt || (message.get('sent_at') || 0) > conversationActiveAt) { conversation.set({