Spaces:
Sleeping
Sleeping
(function() { | |
console.log('Initializing PlayGo Chat Widget'); | |
function createChatWidget(config) { | |
console.log('Creating chat widget with config:', config); | |
// Create container for positioning | |
const container = document.createElement('div'); | |
Object.assign(container.style, { | |
position: 'fixed', | |
bottom: '0', | |
right: '0', | |
zIndex: '9999', | |
padding: '20px', | |
transition: 'all 0.3s ease-in-out', | |
background: 'transparent', | |
width: '250px', | |
height: '120px', | |
display: 'flex', | |
alignItems: 'flex-end', | |
justifyContent: 'flex-end' | |
}); | |
// Create iframe | |
const iframe = document.createElement('iframe'); | |
Object.assign(iframe.style, { | |
border: 'none', | |
background: 'transparent', | |
width: '180px', | |
height: '60px', | |
transition: 'all 0.3s ease-in-out', | |
transform: 'scale(1)', | |
transformOrigin: 'bottom right' | |
}); | |
// Set source with config parameters | |
const queryParams = new URLSearchParams(config).toString(); | |
const chatUrl = `${window.location.origin}/embed/chat?${queryParams}`; | |
iframe.src = chatUrl; | |
// Handle messages from the iframe | |
window.addEventListener('message', function(event) { | |
if (event.data.type === 'chatOpen') { | |
container.style.padding = '20px'; | |
container.style.width = '380px'; | |
container.style.height = '600px'; | |
iframe.style.width = '100%'; | |
iframe.style.height = '100%'; | |
} else if (event.data.type === 'chatClose') { | |
container.style.padding = '20px'; | |
container.style.width = '250px'; | |
container.style.height = '120px'; | |
iframe.style.width = '180px'; | |
iframe.style.height = '60px'; | |
} | |
}); | |
container.appendChild(iframe); | |
return container; | |
} | |
// Initialize the widget | |
window.playgo = function(action, config = {}) { | |
if (action === 'init') { | |
try { | |
const existingWidget = document.getElementById('playgo-chat-widget'); | |
if (existingWidget) { | |
existingWidget.remove(); | |
} | |
const widget = createChatWidget(config); | |
widget.id = 'playgo-chat-widget'; | |
document.body.appendChild(widget); | |
console.log('PlayGo chat initialized successfully'); | |
} catch (error) { | |
console.error('Error initializing PlayGo chat:', error); | |
} | |
} | |
}; | |
// Process any queued commands | |
if (window.PlayGoChatWidget?.q) { | |
window.PlayGoChatWidget.q.forEach(args => window.playgo(...args)); | |
} | |
})(); |