From 2526dbd99aef194b74877536e0fd467b5786d75f Mon Sep 17 00:00:00 2001 From: sokumon Date: Thu, 26 Feb 2026 14:40:01 +0530 Subject: [PATCH] fix: show chat popup only in the desktop page --- frappe/public/js/billing.bundle.js | 23 ++++++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/frappe/public/js/billing.bundle.js b/frappe/public/js/billing.bundle.js index c3771f4ce9..2c11bc75af 100644 --- a/frappe/public/js/billing.bundle.js +++ b/frappe/public/js/billing.bundle.js @@ -32,6 +32,16 @@ $(document).ready(function () { !!frappe.boot.setup_complete && !frappe.is_mobile() && frappe.user.has_role("System Manager"); + if (visiblity_condition && isFCUser) { + frappe.router.on("change", function () { + if (frappe.get_route()[0] == "") { + addChatBubble(); + toggleChatBubble(true); + } else { + toggleChatBubble(false); + } + }); + } if (isFCUser) { $.extend(card_args, { primary_action_label: "Upgrade", @@ -89,9 +99,10 @@ function addChatBubble() { const all_apps = frappe.utils.get_installed_apps(); const desk_apps = ["erpnext", "hrms"]; - const apps_allowed = desk_apps.some((app) => all_apps.includes(app)); + const apps_allowed = frappe.utils.is_sub_array(all_apps, desk_apps); if (checkBusinessHours && apps_allowed) { let chat_banner = document.createElement("script"); + chat_banner.setAttribute("id", "chat_widget_trigger"); chat_banner.innerHTML = '(function(d,t){var BASE_URL="https://chat.frappe.cloud";var g=d.createElement(t),s=d.getElementsByTagName(t)[0];g.src=BASE_URL+"/packs/js/sdk.js";g.async=true;s.parentNode.insertBefore(g,s);g.onload=function(){window.chatwootSDK.run({websiteToken:"LdmfJzftdJGEcFjoTqk8CrSq",baseUrl:BASE_URL})}})(document,"script");'; document.body.append(chat_banner); @@ -106,3 +117,13 @@ function checkBusinessHours() { return istTime.getHours() >= 11 && istTime.getHours() < 18; } + +function toggleChatBubble(toggle) { + if (toggle) { + $(".woot-widget-holder").show(); + $("#cw-bubble-holder").show(); + } else { + $(".woot-widget-holder").hide(); + $("#cw-bubble-holder").hide(); + } +}