mirror of
https://github.com/lingble/chatwoot.git
synced 2025-11-02 12:08:01 +00:00
feat: Adds the ability to disable the "new message notification" popup (#9594)
This commit is contained in:
@@ -62,6 +62,7 @@ const runSDK = ({ baseUrl, websiteToken }) => {
|
|||||||
type: getBubbleView(chatwootSettings.type),
|
type: getBubbleView(chatwootSettings.type),
|
||||||
launcherTitle: chatwootSettings.launcherTitle || '',
|
launcherTitle: chatwootSettings.launcherTitle || '',
|
||||||
showPopoutButton: chatwootSettings.showPopoutButton || false,
|
showPopoutButton: chatwootSettings.showPopoutButton || false,
|
||||||
|
showUnreadMessagesDialog: chatwootSettings.showUnreadMessagesDialog ?? true,
|
||||||
widgetStyle: getWidgetStyle(chatwootSettings.widgetStyle) || 'standard',
|
widgetStyle: getWidgetStyle(chatwootSettings.widgetStyle) || 'standard',
|
||||||
resetTriggered: false,
|
resetTriggered: false,
|
||||||
darkMode: getDarkMode(chatwootSettings.darkMode),
|
darkMode: getDarkMode(chatwootSettings.darkMode),
|
||||||
|
|||||||
@@ -160,6 +160,7 @@ export const IFrameHelper = {
|
|||||||
showPopoutButton: window.$chatwoot.showPopoutButton,
|
showPopoutButton: window.$chatwoot.showPopoutButton,
|
||||||
widgetStyle: window.$chatwoot.widgetStyle,
|
widgetStyle: window.$chatwoot.widgetStyle,
|
||||||
darkMode: window.$chatwoot.darkMode,
|
darkMode: window.$chatwoot.darkMode,
|
||||||
|
showUnreadMessagesDialog: window.$chatwoot.showUnreadMessagesDialog,
|
||||||
campaignsSnoozedTill,
|
campaignsSnoozedTill,
|
||||||
});
|
});
|
||||||
IFrameHelper.onLoad({
|
IFrameHelper.onLoad({
|
||||||
|
|||||||
@@ -71,6 +71,7 @@ export default {
|
|||||||
messageCount: 'conversation/getMessageCount',
|
messageCount: 'conversation/getMessageCount',
|
||||||
unreadMessageCount: 'conversation/getUnreadMessageCount',
|
unreadMessageCount: 'conversation/getUnreadMessageCount',
|
||||||
isWidgetStyleFlat: 'appConfig/isWidgetStyleFlat',
|
isWidgetStyleFlat: 'appConfig/isWidgetStyleFlat',
|
||||||
|
showUnreadMessagesDialog: 'appConfig/getShowUnreadMessagesDialog',
|
||||||
}),
|
}),
|
||||||
isIFrame() {
|
isIFrame() {
|
||||||
return IFrameHelper.isIFrame();
|
return IFrameHelper.isIFrame();
|
||||||
@@ -209,8 +210,13 @@ export default {
|
|||||||
},
|
},
|
||||||
setUnreadView() {
|
setUnreadView() {
|
||||||
const { unreadMessageCount } = this;
|
const { unreadMessageCount } = this;
|
||||||
|
if (!this.showUnreadMessagesDialog) {
|
||||||
if (this.isIFrame && unreadMessageCount > 0 && !this.isWidgetOpen) {
|
this.handleUnreadNotificationDot();
|
||||||
|
} else if (
|
||||||
|
this.isIFrame &&
|
||||||
|
unreadMessageCount > 0 &&
|
||||||
|
!this.isWidgetOpen
|
||||||
|
) {
|
||||||
this.replaceRoute('unread-messages').then(() => {
|
this.replaceRoute('unread-messages').then(() => {
|
||||||
this.setIframeHeight(true);
|
this.setIframeHeight(true);
|
||||||
IFrameHelper.sendMessage({ event: 'setUnreadMode' });
|
IFrameHelper.sendMessage({ event: 'setUnreadMode' });
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import {
|
|||||||
const state = {
|
const state = {
|
||||||
hideMessageBubble: false,
|
hideMessageBubble: false,
|
||||||
isCampaignViewClicked: false,
|
isCampaignViewClicked: false,
|
||||||
|
showUnreadMessagesDialog: true,
|
||||||
isWebWidgetTriggered: false,
|
isWebWidgetTriggered: false,
|
||||||
isWidgetOpen: false,
|
isWidgetOpen: false,
|
||||||
position: 'right',
|
position: 'right',
|
||||||
@@ -29,6 +30,7 @@ export const getters = {
|
|||||||
getReferrerHost: $state => $state.referrerHost,
|
getReferrerHost: $state => $state.referrerHost,
|
||||||
isWidgetStyleFlat: $state => $state.widgetStyle === 'flat',
|
isWidgetStyleFlat: $state => $state.widgetStyle === 'flat',
|
||||||
darkMode: $state => $state.darkMode,
|
darkMode: $state => $state.darkMode,
|
||||||
|
getShowUnreadMessagesDialog: $state => $state.showUnreadMessagesDialog,
|
||||||
};
|
};
|
||||||
|
|
||||||
export const actions = {
|
export const actions = {
|
||||||
@@ -38,6 +40,7 @@ export const actions = {
|
|||||||
showPopoutButton,
|
showPopoutButton,
|
||||||
position,
|
position,
|
||||||
hideMessageBubble,
|
hideMessageBubble,
|
||||||
|
showUnreadMessagesDialog,
|
||||||
widgetStyle = 'rounded',
|
widgetStyle = 'rounded',
|
||||||
darkMode = 'light',
|
darkMode = 'light',
|
||||||
}
|
}
|
||||||
@@ -46,6 +49,7 @@ export const actions = {
|
|||||||
hideMessageBubble: !!hideMessageBubble,
|
hideMessageBubble: !!hideMessageBubble,
|
||||||
position: position || 'right',
|
position: position || 'right',
|
||||||
showPopoutButton: !!showPopoutButton,
|
showPopoutButton: !!showPopoutButton,
|
||||||
|
showUnreadMessagesDialog: !!showUnreadMessagesDialog,
|
||||||
widgetStyle,
|
widgetStyle,
|
||||||
darkMode,
|
darkMode,
|
||||||
});
|
});
|
||||||
@@ -75,6 +79,7 @@ export const mutations = {
|
|||||||
$state.widgetStyle = data.widgetStyle;
|
$state.widgetStyle = data.widgetStyle;
|
||||||
$state.darkMode = data.darkMode;
|
$state.darkMode = data.darkMode;
|
||||||
$state.locale = data.locale || $state.locale;
|
$state.locale = data.locale || $state.locale;
|
||||||
|
$state.showUnreadMessagesDialog = data.showUnreadMessagesDialog;
|
||||||
},
|
},
|
||||||
[TOGGLE_WIDGET_OPEN]($state, isWidgetOpen) {
|
[TOGGLE_WIDGET_OPEN]($state, isWidgetOpen) {
|
||||||
$state.isWidgetOpen = isWidgetOpen;
|
$state.isWidgetOpen = isWidgetOpen;
|
||||||
|
|||||||
@@ -13,4 +13,10 @@ describe('#getters', () => {
|
|||||||
expect(getters.getReferrerHost(state)).toEqual('www.chatwoot.com');
|
expect(getters.getReferrerHost(state)).toEqual('www.chatwoot.com');
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
describe('#getShowUnreadMessagesDialog', () => {
|
||||||
|
it('returns correct value', () => {
|
||||||
|
const state = { showUnreadMessagesDialog: true };
|
||||||
|
expect(getters.getShowUnreadMessagesDialog(state)).toEqual(true);
|
||||||
|
});
|
||||||
|
});
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -14,6 +14,7 @@
|
|||||||
|
|
||||||
window.chatwootSettings = {
|
window.chatwootSettings = {
|
||||||
hideMessageBubble: false,
|
hideMessageBubble: false,
|
||||||
|
// showUnreadMessagesDialog: false,
|
||||||
// baseDomain: '.loca.lt',
|
// baseDomain: '.loca.lt',
|
||||||
position: '<%= @widget_position %>',
|
position: '<%= @widget_position %>',
|
||||||
locale: 'en',
|
locale: 'en',
|
||||||
|
|||||||
Reference in New Issue
Block a user