From 6963c668bfc0cdcf51ee3e8bd1d7bcb9beb8f342 Mon Sep 17 00:00:00 2001 From: Shivam Mishra Date: Tue, 8 Oct 2024 10:49:56 +0530 Subject: [PATCH] chore: add console logs --- app/javascript/entrypoints/sdk.js | 61 ++++++++++++++++++++++++++----- 1 file changed, 51 insertions(+), 10 deletions(-) diff --git a/app/javascript/entrypoints/sdk.js b/app/javascript/entrypoints/sdk.js index 0aac9104e..53040e3f7 100755 --- a/app/javascript/entrypoints/sdk.js +++ b/app/javascript/entrypoints/sdk.js @@ -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,