chore: add console logs

This commit is contained in:
Shivam Mishra
2024-10-08 10:49:56 +05:30
parent a8c12ffb25
commit 6963c668bf
+51 -10
View File
@@ -19,34 +19,45 @@ import { setCookieWithDomain } from '../sdk/cookieHelpers';
import { SDK_SET_BUBBLE_VISIBILITY } from 'shared/constants/sharedFrameEvents';
const runSDK = ({ baseUrl, websiteToken }) => {
console.log('runSDK called with:', { baseUrl, websiteToken });
if (window.$chatwoot) {
console.log('Chatwoot already initialized.');
return;
}
if (window.Turbo) {
// if this is a Rails Turbo app
document.addEventListener('turbo:before-render', event =>
restoreWidgetInDOM(event.detail.newBody)
);
console.log('Turbo detected.');
document.addEventListener('turbo:before-render', event => {
console.log('Turbo before render triggered.');
restoreWidgetInDOM(event.detail.newBody);
});
}
if (window.Turbolinks) {
console.log('Turbolinks detected.');
document.addEventListener('turbolinks:before-render', event => {
console.log('Turbolinks before render triggered.');
restoreWidgetInDOM(event.data.newBody);
});
}
// if this is an astro app
document.addEventListener('astro:before-swap', event =>
restoreWidgetInDOM(event.newDocument.body)
);
console.log('Checking for Astro app...');
document.addEventListener('astro:before-swap', event => {
console.log('Astro before swap triggered.');
restoreWidgetInDOM(event.newDocument.body);
});
const chatwootSettings = window.chatwootSettings || {};
console.log('Chatwoot settings:', chatwootSettings);
let locale = chatwootSettings.locale;
let baseDomain = chatwootSettings.baseDomain;
console.log('Initial locale and baseDomain:', { locale, baseDomain });
if (chatwootSettings.useBrowserLanguage) {
locale = window.navigator.language.replace('-', '_');
console.log('Using browser language:', locale);
}
window.$chatwoot = {
@@ -68,10 +79,12 @@ const runSDK = ({ baseUrl, websiteToken }) => {
darkMode: getDarkMode(chatwootSettings.darkMode),
toggle(state) {
console.log('Toggling bubble state:', state);
IFrameHelper.events.toggleBubble(state);
},
toggleBubbleVisibility(visibility) {
console.log('Toggling bubble visibility:', visibility);
let widgetElm = document.querySelector('.woot--bubble-holder');
let widgetHolder = document.querySelector('.woot-widget-holder');
if (visibility === 'hide') {
@@ -89,6 +102,7 @@ const runSDK = ({ baseUrl, websiteToken }) => {
},
popoutChatWindow() {
console.log('Popout chat window triggered.');
IFrameHelper.events.popoutChatWindow({
baseUrl: window.$chatwoot.baseUrl,
websiteToken: window.$chatwoot.websiteToken,
@@ -97,11 +111,14 @@ const runSDK = ({ baseUrl, websiteToken }) => {
},
setUser(identifier, user) {
console.log('Setting user:', { identifier, user });
if (typeof identifier !== 'string' && typeof identifier !== 'number') {
console.error('Invalid identifier type:', identifier);
throw new Error('Identifier should be a string or a number');
}
if (!hasUserKeys(user)) {
console.error('User object is missing required keys:', user);
throw new Error(
'User object should have one of the keys [avatar_url, email, name]'
);
@@ -110,7 +127,13 @@ const runSDK = ({ baseUrl, websiteToken }) => {
const userCookieName = getUserCookieName();
const existingCookieValue = Cookies.get(userCookieName);
const hashToBeStored = computeHashForUserData({ identifier, user });
console.log('User cookie name and hash:', {
userCookieName,
hashToBeStored,
});
if (hashToBeStored === existingCookieValue) {
console.log('User hash matches existing cookie. No update needed.');
return;
}
@@ -124,15 +147,19 @@ const runSDK = ({ baseUrl, websiteToken }) => {
},
setCustomAttributes(customAttributes = {}) {
console.log('Setting custom attributes:', customAttributes);
if (!customAttributes || !Object.keys(customAttributes).length) {
throw new Error('Custom attributes should have atleast one key');
console.error('Invalid custom attributes:', customAttributes);
throw new Error('Custom attributes should have at least one key');
} else {
IFrameHelper.sendMessage('set-custom-attributes', { customAttributes });
}
},
deleteCustomAttribute(customAttribute = '') {
console.log('Deleting custom attribute:', customAttribute);
if (!customAttribute) {
console.error('Custom attribute is missing.');
throw new Error('Custom attribute is required');
} else {
IFrameHelper.sendMessage('delete-custom-attribute', {
@@ -142,8 +169,13 @@ const runSDK = ({ baseUrl, websiteToken }) => {
},
setConversationCustomAttributes(customAttributes = {}) {
console.log('Setting conversation custom attributes:', customAttributes);
if (!customAttributes || !Object.keys(customAttributes).length) {
throw new Error('Custom attributes should have atleast one key');
console.error(
'Invalid conversation custom attributes:',
customAttributes
);
throw new Error('Custom attributes should have at least one key');
} else {
IFrameHelper.sendMessage('set-conversation-custom-attributes', {
customAttributes,
@@ -152,7 +184,9 @@ const runSDK = ({ baseUrl, websiteToken }) => {
},
deleteConversationCustomAttribute(customAttribute = '') {
console.log('Deleting conversation custom attribute:', customAttribute);
if (!customAttribute) {
console.error('Conversation custom attribute is missing.');
throw new Error('Custom attribute is required');
} else {
IFrameHelper.sendMessage('delete-conversation-custom-attribute', {
@@ -162,24 +196,29 @@ const runSDK = ({ baseUrl, websiteToken }) => {
},
setLabel(label = '') {
console.log('Setting label:', label);
IFrameHelper.sendMessage('set-label', { label });
},
removeLabel(label = '') {
console.log('Removing label:', label);
IFrameHelper.sendMessage('remove-label', { label });
},
setLocale(localeToBeUsed = 'en') {
console.log('Setting locale:', localeToBeUsed);
IFrameHelper.sendMessage('set-locale', { locale: localeToBeUsed });
},
setColorScheme(darkMode = 'light') {
console.log('Setting color scheme to:', darkMode);
IFrameHelper.sendMessage('set-color-scheme', {
darkMode: getDarkMode(darkMode),
});
},
reset() {
console.log('Resetting Chatwoot.');
if (window.$chatwoot.isOpen) {
IFrameHelper.events.toggleBubble();
}
@@ -188,6 +227,7 @@ const runSDK = ({ baseUrl, websiteToken }) => {
Cookies.remove(getUserCookieName());
const iframe = IFrameHelper.getAppFrame();
console.log('Reloading iframe with new URL.');
iframe.src = IFrameHelper.getUrl({
baseUrl: window.$chatwoot.baseUrl,
websiteToken: window.$chatwoot.websiteToken,
@@ -197,6 +237,7 @@ const runSDK = ({ baseUrl, websiteToken }) => {
},
};
console.log('Creating iframe for Chatwoot...');
IFrameHelper.createFrame({
baseUrl,
websiteToken,