Co-authored-by: Pranav Raj Sreepuram <pranavrajs@gmail.com>
This commit is contained in:
committed by
GitHub
parent
f9e8bb8e10
commit
944fbf27b7
@@ -4,8 +4,6 @@ import {
|
|||||||
body,
|
body,
|
||||||
widgetHolder,
|
widgetHolder,
|
||||||
createBubbleHolder,
|
createBubbleHolder,
|
||||||
disableScroll,
|
|
||||||
enableScroll,
|
|
||||||
createBubbleIcon,
|
createBubbleIcon,
|
||||||
bubbleImg,
|
bubbleImg,
|
||||||
chatBubble,
|
chatBubble,
|
||||||
@@ -37,6 +35,7 @@ export const IFrameHelper = {
|
|||||||
IFrameHelper.initPostMessageCommunication();
|
IFrameHelper.initPostMessageCommunication();
|
||||||
IFrameHelper.initLocationListener();
|
IFrameHelper.initLocationListener();
|
||||||
IFrameHelper.initWindowSizeListener();
|
IFrameHelper.initWindowSizeListener();
|
||||||
|
IFrameHelper.preventDefaultScroll();
|
||||||
},
|
},
|
||||||
getAppFrame: () => document.getElementById('chatwoot_live_chat_widget'),
|
getAppFrame: () => document.getElementById('chatwoot_live_chat_widget'),
|
||||||
sendMessage: (key, value) => {
|
sendMessage: (key, value) => {
|
||||||
@@ -70,6 +69,21 @@ export const IFrameHelper = {
|
|||||||
IFrameHelper.toggleCloseButton();
|
IFrameHelper.toggleCloseButton();
|
||||||
});
|
});
|
||||||
},
|
},
|
||||||
|
preventDefaultScroll: () => {
|
||||||
|
widgetHolder.addEventListener('wheel', event => {
|
||||||
|
const deltaY = event.deltaY;
|
||||||
|
const contentHeight = widgetHolder.scrollHeight;
|
||||||
|
const visibleHeight = widgetHolder.offsetHeight;
|
||||||
|
const scrollTop = widgetHolder.scrollTop;
|
||||||
|
|
||||||
|
if (
|
||||||
|
(scrollTop === 0 && deltaY < 0) ||
|
||||||
|
(visibleHeight + scrollTop === contentHeight && deltaY > 0)
|
||||||
|
) {
|
||||||
|
event.preventDefault();
|
||||||
|
}
|
||||||
|
});
|
||||||
|
},
|
||||||
events: {
|
events: {
|
||||||
loaded: message => {
|
loaded: message => {
|
||||||
Cookies.set('cw_conversation', message.config.authToken, {
|
Cookies.set('cw_conversation', message.config.authToken, {
|
||||||
@@ -99,8 +113,6 @@ export const IFrameHelper = {
|
|||||||
const iframe = IFrameHelper.getAppFrame();
|
const iframe = IFrameHelper.getAppFrame();
|
||||||
iframe.style.visibility = '';
|
iframe.style.visibility = '';
|
||||||
iframe.setAttribute('id', `chatwoot_live_chat_widget`);
|
iframe.setAttribute('id', `chatwoot_live_chat_widget`);
|
||||||
iframe.onmouseenter = disableScroll;
|
|
||||||
iframe.onmouseleave = enableScroll;
|
|
||||||
|
|
||||||
loadCSS();
|
loadCSS();
|
||||||
createBubbleHolder();
|
createBubbleHolder();
|
||||||
|
|||||||
@@ -12,7 +12,6 @@ export const chatBubble = document.createElement('div');
|
|||||||
export const closeBubble = document.createElement('div');
|
export const closeBubble = document.createElement('div');
|
||||||
|
|
||||||
export const notificationBubble = document.createElement('span');
|
export const notificationBubble = document.createElement('span');
|
||||||
const bodyOverFlowStyle = document.body.style.overflow;
|
|
||||||
|
|
||||||
export const createBubbleIcon = ({ className, src, target }) => {
|
export const createBubbleIcon = ({ className, src, target }) => {
|
||||||
target.className = `${className} woot-elements--${window.$chatwoot.position}`;
|
target.className = `${className} woot-elements--${window.$chatwoot.position}`;
|
||||||
@@ -45,11 +44,3 @@ export const onBubbleClick = () => {
|
|||||||
export const onClickChatBubble = () => {
|
export const onClickChatBubble = () => {
|
||||||
wootOn(bubbleHolder, 'click', onBubbleClick);
|
wootOn(bubbleHolder, 'click', onBubbleClick);
|
||||||
};
|
};
|
||||||
|
|
||||||
export const disableScroll = () => {
|
|
||||||
document.body.style.overflow = 'hidden';
|
|
||||||
};
|
|
||||||
|
|
||||||
export const enableScroll = () => {
|
|
||||||
document.body.style.overflow = bodyOverFlowStyle;
|
|
||||||
};
|
|
||||||
|
|||||||
Reference in New Issue
Block a user