Spaces:
Sleeping
Sleeping
File size: 2,790 Bytes
dea8d0d |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
const chatWindow = document.getElementById("chat-window");
const userInput = document.getElementById("user-input");
const sendBtn = document.getElementById("send-btn");
const upgradeBtn = document.getElementById("upgrade-btn");
const sessionHoursEl = document.getElementById("session-hours");
const bgSelect = document.getElementById("bg-select");
const langSelect = document.getElementById("lang-select");
const voiceToggle = document.getElementById("voice-toggle");
let voiceEnabled = true; // Default voice ON
const userId = "local_user"; // Can be dynamic
// ----------------------------
// Helper: Display message
// ----------------------------
function displayMessage(sender, msg) {
const div = document.createElement("div");
div.className = sender;
div.textContent = msg;
chatWindow.appendChild(div);
chatWindow.scrollTop = chatWindow.scrollHeight;
}
// ----------------------------
// Send message to Flask backend
// ----------------------------
async function sendMessage(message, premium=false) {
const res = await fetch(`/chat?msg=${encodeURIComponent(message)}&user_id=${userId}&premium=${premium}`);
const data = await res.json();
displayMessage("bot", data.reply);
sessionHoursEl.textContent = data.remaining_hours;
}
// ----------------------------
// Handle send button
// ----------------------------
sendBtn.addEventListener("click", () => {
const message = userInput.value.trim();
if(!message) return;
displayMessage("user", message);
sendMessage(message, false);
userInput.value = "";
});
// ----------------------------
// Handle Enter key
// ----------------------------
userInput.addEventListener("keypress", (e) => {
if(e.key === "Enter") sendBtn.click();
});
// ----------------------------
// Premium upgrade
// ----------------------------
upgradeBtn.addEventListener("click", async () => {
const res = await fetch(`/upgrade?user_id=${userId}`, {method: "POST"});
const data = await res.json();
displayMessage("bot", data.message);
sessionHoursEl.textContent = data.remaining_hours;
});
// ----------------------------
// Background selector
// ----------------------------
bgSelect.addEventListener("change", () => {
document.querySelector(".app-container").className = `app-container ${bgSelect.value}`;
});
// ----------------------------
// Language selector (placeholder)
// ----------------------------
langSelect.addEventListener("change", () => {
displayMessage("bot", `Language switched to ${langSelect.value}`);
});
// ----------------------------
// Voice toggle
// ----------------------------
voiceToggle.addEventListener("click", () => {
voiceEnabled = !voiceEnabled;
displayMessage("bot", `Voice ${voiceEnabled ? "enabled" : "disabled"}`);
}); |