document.addEventListener("DOMContentLoaded", () => { let bubbleSettings = document.bubbleSettings; /* bubbleSettings.bubble_color; OK bubbleSettings.cross_color; OK bubbleSettings.phone_number; bubbleSettings.shop_name; OK bubbleSettings.shop_pic; OK bubbleSettings.show_mobile_only; bubbleSettings.show_whatsapp; bubbleSettings.text_color; OK bubbleSettings.text_color_background; OK bubbleSettings.tooltip_position; bubbleSettings.whatsapp_delay; bubbleSettings.whatsapp_message; bubbleSettings.whatsapp_message_inside; bubbleSettings.pre_message_input; bubbleSettings.status; bubbleSettings.total_delay; bubbleSettings.buttons_color; bubbleSettings.header_color; */ bubbleSettings.button_three = "J'ai une question"; bubbleSettings.shop_name = "Mademoiselle Cavaliere"; bubbleSettings.shop_pic = "https://mademoisellecavaliere.com/cdn/shop/files/Mademoiselle_Cavaliere_21-retoucher-parfum_11.jpg"; bubbleSettings.whatsapp_delay = "8000"; bubbleSettings.whatsapp_message_inside = "Bonjour, comment puis-je vous aider ?"; bubbleSettings.whatsapp_message = "Vous cherchez un produit ?"; bubbleSettings.button_one = "Je veux un code promo -10%"; bubbleSettings.button_two = "Je veux voir les pantalons"; let style = ` `; if (bubbleSettings.show_mobile_only) { style += ` @media (min-width: 768px) { #prrrr { display: none; } `; } else { } let positionStyle = ""; if (bubbleSettings.tooltip_position === "full-coco-left") { positionStyle = "left: 15px; right: auto;"; // Place la bulle à gauche } else { positionStyle = "right: 15px; left: auto;"; // Garde la bulle à droite (position par défaut) } document.getElementById("coco-body").innerHTML = /*html*/ `
${bubbleSettings.whatsapp_message} ×
WhatsApp
1
Profile ${bubbleSettings.shop_name}
${bubbleSettings.status}
×
`; const chatWidget = document.getElementById("chat-widget-container"); const whatsappIcon = document.getElementById("whatsapp-icon"); const notificationBubble = document.getElementById("notification-bubble"); const closeChat = document.getElementById("chat-widget-close"); const sendMessageButton = document.getElementById("chat-widget-send"); const messageInput = document.querySelector("#chat-widget-footer input"); const chatMessages = document.getElementById("chat-messages"); const closeAllMessages = document.getElementById("notification-bubble-close"); const notificationText = document.getElementById("notification-bubble-text"); const cocoBody = document.getElementById("coco-body"); const headerChatBox = document.getElementById("chat-widget-header"); function isMobile() { return /iPhone|iPad|iPod|Android|BlackBerry|IEMobile|Opera Mini/i.test( navigator.userAgent, ); } function openWhatsAppLink(message) { const whatsappUrl = `https://api.whatsapp.com/send/?phone=${bubbleSettings.phone_number}&text=` + encodeURIComponent(message); window.open(whatsappUrl, "_blank"); } function simulateTyping() { const typingIndicator = document.createElement("div"); typingIndicator.textContent = "..."; typingIndicator.style.padding = "10px"; typingIndicator.style.marginBottom = "10px"; typingIndicator.style.borderRadius = "15px"; typingIndicator.style.backgroundColor = "#f1f0f0"; typingIndicator.style.color = "black"; typingIndicator.style.marginLeft = "20px"; chatMessages.appendChild(typingIndicator); setTimeout(() => { chatMessages.removeChild(typingIndicator); displayWelcomeMessage(); }, 2000); } function displayWelcomeMessage() { const messageElement = document.createElement("div"); messageElement.textContent = bubbleSettings.whatsapp_message_inside; messageElement.style.padding = "10px"; messageElement.style.marginBottom = "10px"; messageElement.style.borderRadius = "15px"; messageElement.style.backgroundColor = "#f1f0f0"; messageElement.style.color = "black"; chatMessages.appendChild(messageElement); } notificationText.addEventListener("click", toggleChatWidget); headerChatBox.addEventListener("click", toggleChatWidget); closeAllMessages.addEventListener("click", hideTextNotification); sendMessageButton.addEventListener("click", function () { const message = messageInput.value.trim(); if (message) { openWhatsAppLink(message); messageInput.value = ""; } }); messageInput.addEventListener("keypress", function (e) { if (e.key === "Enter" || e.keyCode === 13) { e.preventDefault(); sendMessageButton.click(); } }); document.getElementById("buttonOne").addEventListener("click", function () { openWhatsAppLink(bubbleSettings.button_one); }); document.getElementById("buttonTwo").addEventListener("click", function () { openWhatsAppLink(bubbleSettings.button_two); }); document.getElementById("buttonThree").addEventListener("click", function () { openWhatsAppLink(bubbleSettings.button_three); }); function toggleChatWidget() { if (chatWidget.style.display === "block") { minimizeChatWidget(); } else { maximizeChatWidget(); } } function minimizeChatWidget() { if (chatWidget.style.display !== "block") { return; // Ne rien faire si le widget de chat est déjà fermé } // Si le widget de chat est ouvert, fermez-le chatWidget.style.display = "none"; showTexTNotification(); chatMessages.innerHTML = ""; // Clear messages when chat widget is closed isWelcomeMessageShown = false; // Réinitialise le drapeau pour permettre la simulation à la prochaine ouverture console.log("TOGGLE CHAT WIDGET - MINIMIZE"); startChangeNotificationText(); } function maximizeChatWidget() { if (chatWidget.style.display === "block") { return; // Ne rien faire si le widget de chat est déjà ouvert } // Sinon, ouvrez le widget de chat et simulez le message de bienvenue chatWidget.style.display = "block"; hideTextNotification(); simulateTyping(); console.log("TOGGLE CHAT WIDGET - MAXIMIZE"); stopChangeNotificationText(); } function hideTextNotification(keepHidden = false) { notificationBubble.style.display = "none"; if (keepHidden) { // store it in local storage localStorage.setItem("notificationBubbleHidden", "true"); } } function showTexTNotification() { notificationBubble.style.display = "flex"; // remove it from local storage localStorage.removeItem("notificationBubbleHidden"); } // Attachez cette nouvelle fonction toggle au clic de l'icône WhatsApp whatsappIcon.addEventListener("click", toggleChatWidget); // Ouvrir automatiquement le chat widget après X secondes, seulement si pas mobile const whatsAppDelayMs = Number.parseInt(bubbleSettings.whatsapp_delay); if (!isMobile() && Number.isInteger(whatsAppDelayMs)) { setTimeout(maximizeChatWidget, bubbleSettings.whatsapp_delay); } // change notificationText inner text between three values every 4 seconds in loop let changeNotificationTextInterval = null; function startChangeNotificationText() { if (changeNotificationTextInterval) return; let i = 1; const messages = [ bubbleSettings.whatsapp_message, bubbleSettings.button_one, bubbleSettings.button_two, bubbleSettings.button_three, ]; changeNotificationTextInterval = setInterval(() => { console.log("changing text"); // animate a fade out effect notificationText.textContent = messages[i]; i = (i + 1) % messages.length; }, 3500); } function stopChangeNotificationText() { if (!changeNotificationTextInterval) return; clearInterval(changeNotificationTextInterval); notificationText.textContent = bubbleSettings.whatsapp_message; changeNotificationTextInterval = null; } startChangeNotificationText(); });