Spaces:
Running
Running
| // scripts/chat.js | |
| const getElement = (id) => document.getElementById(id); | |
| async function sendMessage() { | |
| const userInput = getElement('user-input'); | |
| const chatMessages = getElement('chat-messages'); | |
| if (userInput.value.trim() === '') return; | |
| // ... (keep the complete sendMessage logic from the previous response here) | |
| // ... (This includes adding user message, creating AI bubble, and the fetch call) | |
| } | |
| function quickPrompt(prompt) { | |
| getElement('user-input').value = prompt; | |
| sendMessage(); | |
| } | |
| function updateRecommendationsFromAI(aiResponse) { | |
| // This is a placeholder. You can enhance this logic. | |
| let filter = 'all'; | |
| if (aiResponse.includes('comedy')) filter = 'comedy'; | |
| else if (aiResponse.includes('thriller')) filter = 'thriller'; | |
| else if (aiResponse.includes('romance')) filter = 'romance'; | |
| // In a truly modular system, this would emit an event that ui.js listens for. | |
| // For simplicity, we'll call a function defined in the global scope (see app.js). | |
| window.loadRecommendations(filter); | |
| } | |
| export function initChat() { | |
| getElement('send-btn').addEventListener('click', sendMessage); | |
| getElement('user-input').addEventListener('keypress', (e) => { | |
| if (e.key === 'Enter') { | |
| sendMessage(); | |
| } | |
| }); | |
| // Make quickPrompt globally accessible for the inline HTML onclick attributes | |
| window.quickPrompt = quickPrompt; | |
| } |