feat: Adds the ability to disable the "new message notification" popup (#9594)

This commit is contained in:
Sivin Varghese
2024-06-11 08:14:58 +05:30
committed by GitHub
parent 20b2dc8c6f
commit 9689bbf0dd
6 changed files with 22 additions and 2 deletions

View File

@@ -62,6 +62,7 @@ const runSDK = ({ baseUrl, websiteToken }) => {
type: getBubbleView(chatwootSettings.type),
launcherTitle: chatwootSettings.launcherTitle || '',
showPopoutButton: chatwootSettings.showPopoutButton || false,
showUnreadMessagesDialog: chatwootSettings.showUnreadMessagesDialog ?? true,
widgetStyle: getWidgetStyle(chatwootSettings.widgetStyle) || 'standard',
resetTriggered: false,
darkMode: getDarkMode(chatwootSettings.darkMode),

View File

@@ -160,6 +160,7 @@ export const IFrameHelper = {
showPopoutButton: window.$chatwoot.showPopoutButton,
widgetStyle: window.$chatwoot.widgetStyle,
darkMode: window.$chatwoot.darkMode,
showUnreadMessagesDialog: window.$chatwoot.showUnreadMessagesDialog,
campaignsSnoozedTill,
});
IFrameHelper.onLoad({

View File

@@ -71,6 +71,7 @@ export default {
messageCount: 'conversation/getMessageCount',
unreadMessageCount: 'conversation/getUnreadMessageCount',
isWidgetStyleFlat: 'appConfig/isWidgetStyleFlat',
showUnreadMessagesDialog: 'appConfig/getShowUnreadMessagesDialog',
}),
isIFrame() {
return IFrameHelper.isIFrame();
@@ -209,8 +210,13 @@ export default {
},
setUnreadView() {
const { unreadMessageCount } = this;
if (this.isIFrame && unreadMessageCount > 0 && !this.isWidgetOpen) {
if (!this.showUnreadMessagesDialog) {
this.handleUnreadNotificationDot();
} else if (
this.isIFrame &&
unreadMessageCount > 0 &&
!this.isWidgetOpen
) {
this.replaceRoute('unread-messages').then(() => {
this.setIframeHeight(true);
IFrameHelper.sendMessage({ event: 'setUnreadMode' });

View File

@@ -10,6 +10,7 @@ import {
const state = {
hideMessageBubble: false,
isCampaignViewClicked: false,
showUnreadMessagesDialog: true,
isWebWidgetTriggered: false,
isWidgetOpen: false,
position: 'right',
@@ -29,6 +30,7 @@ export const getters = {
getReferrerHost: $state => $state.referrerHost,
isWidgetStyleFlat: $state => $state.widgetStyle === 'flat',
darkMode: $state => $state.darkMode,
getShowUnreadMessagesDialog: $state => $state.showUnreadMessagesDialog,
};
export const actions = {
@@ -38,6 +40,7 @@ export const actions = {
showPopoutButton,
position,
hideMessageBubble,
showUnreadMessagesDialog,
widgetStyle = 'rounded',
darkMode = 'light',
}
@@ -46,6 +49,7 @@ export const actions = {
hideMessageBubble: !!hideMessageBubble,
position: position || 'right',
showPopoutButton: !!showPopoutButton,
showUnreadMessagesDialog: !!showUnreadMessagesDialog,
widgetStyle,
darkMode,
});
@@ -75,6 +79,7 @@ export const mutations = {
$state.widgetStyle = data.widgetStyle;
$state.darkMode = data.darkMode;
$state.locale = data.locale || $state.locale;
$state.showUnreadMessagesDialog = data.showUnreadMessagesDialog;
},
[TOGGLE_WIDGET_OPEN]($state, isWidgetOpen) {
$state.isWidgetOpen = isWidgetOpen;

View File

@@ -13,4 +13,10 @@ describe('#getters', () => {
expect(getters.getReferrerHost(state)).toEqual('www.chatwoot.com');
});
});
describe('#getShowUnreadMessagesDialog', () => {
it('returns correct value', () => {
const state = { showUnreadMessagesDialog: true };
expect(getters.getShowUnreadMessagesDialog(state)).toEqual(true);
});
});
});

View File

@@ -14,6 +14,7 @@
window.chatwootSettings = {
hideMessageBubble: false,
// showUnreadMessagesDialog: false,
// baseDomain: '.loca.lt',
position: '<%= @widget_position %>',
locale: 'en',