fix: Old Instagram inbox warnings (#11318)

We have added warnings for existing Instagram messenger inboxes via
https://github.com/chatwoot/chatwoot/pull/11303. There is an issue with
finding the correct Instagram/messenger inbox. This PR will fixes that
issue.
This commit is contained in:
Muhsin Keloth
2025-04-16 16:30:32 +05:30
committed by GitHub
parent 5c00880857
commit c6d4bc5632
6 changed files with 37 additions and 10 deletions

View File

@@ -210,15 +210,15 @@ export default {
return contactLastSeenAt; return contactLastSeenAt;
}, },
// Check there is a facebook inbox with the same instagram_id // Check there is a instagram inbox exists with the same instagram_id
hasDuplicateInstagramInbox() { hasDuplicateInstagramInbox() {
const instagramId = this.inbox.instagram_id; const instagramId = this.inbox.instagram_id;
const facebookInbox = const instagramInbox =
this.$store.getters['inboxes/getFacebookInboxByInstagramId']( this.$store.getters['inboxes/getInstagramInboxByInstagramId'](
instagramId instagramId
); );
return this.inbox.channel_type === INBOX_TYPES.FB && facebookInbox; return this.inbox.channel_type === INBOX_TYPES.FB && instagramInbox;
}, },
replyWindowBannerMessage() { replyWindowBannerMessage() {

View File

@@ -18,7 +18,7 @@ export default {
isATwilioInbox() { isATwilioInbox() {
return this.currentInbox.channel_type === 'Channel::TwilioSms'; return this.currentInbox.channel_type === 'Channel::TwilioSms';
}, },
// Check if a facebook inbox that has the same instagram_id // Check if a facebook inbox exists with the same instagram_id
hasDuplicateInstagramInbox() { hasDuplicateInstagramInbox() {
const instagramId = this.currentInbox.instagram_id; const instagramId = this.currentInbox.instagram_id;
const facebookInbox = const facebookInbox =

View File

@@ -210,15 +210,15 @@ export default {
instagramUnauthorized() { instagramUnauthorized() {
return this.isAInstagramChannel && this.inbox.reauthorization_required; return this.isAInstagramChannel && this.inbox.reauthorization_required;
}, },
// Check if a facebook inbox that has the same instagram_id // Check if a instagram inbox exists with the same instagram_id
hasDuplicateInstagramInbox() { hasDuplicateInstagramInbox() {
const instagramId = this.inbox.instagram_id; const instagramId = this.inbox.instagram_id;
const facebookInbox = const instagramInbox =
this.$store.getters['inboxes/getFacebookInboxByInstagramId']( this.$store.getters['inboxes/getInstagramInboxByInstagramId'](
instagramId instagramId
); );
return this.inbox.channel_type === INBOX_TYPES.FB && facebookInbox; return this.inbox.channel_type === INBOX_TYPES.FB && instagramInbox;
}, },
microsoftUnauthorized() { microsoftUnauthorized() {
return this.isAMicrosoftInbox && this.inbox.reauthorization_required; return this.isAMicrosoftInbox && this.inbox.reauthorization_required;

View File

@@ -129,6 +129,13 @@ export const getters = {
item.channel_type === INBOX_TYPES.FB item.channel_type === INBOX_TYPES.FB
); );
}, },
getInstagramInboxByInstagramId: $state => instagramId => {
return $state.records.find(
item =>
item.instagram_id === instagramId &&
item.channel_type === INBOX_TYPES.INSTAGRAM
);
},
}; };
const sendAnalyticsEvent = channelType => { const sendAnalyticsEvent = channelType => {

View File

@@ -63,4 +63,12 @@ export default [
channel_type: 'Channel::Sms', channel_type: 'Channel::Sms',
provider: 'default', provider: 'default',
}, },
{
id: 7,
channel_id: 7,
name: 'Test Instagram 1',
channel_type: 'Channel::Instagram',
instagram_id: 123456789,
provider: 'default',
},
]; ];

View File

@@ -26,7 +26,7 @@ describe('#getters', () => {
it('dialogFlowEnabledInboxes', () => { it('dialogFlowEnabledInboxes', () => {
const state = { records: inboxList }; const state = { records: inboxList };
expect(getters.dialogFlowEnabledInboxes(state).length).toEqual(6); expect(getters.dialogFlowEnabledInboxes(state).length).toEqual(7);
}); });
it('getInbox', () => { it('getInbox', () => {
@@ -81,4 +81,16 @@ describe('#getters', () => {
instagram_id: 123456789, instagram_id: 123456789,
}); });
}); });
it('getInstagramInboxByInstagramId', () => {
const state = { records: inboxList };
expect(getters.getInstagramInboxByInstagramId(state)(123456789)).toEqual({
id: 7,
channel_id: 7,
name: 'Test Instagram 1',
channel_type: 'Channel::Instagram',
instagram_id: 123456789,
provider: 'default',
});
});
}); });