Spaces:
Running
Running
| const promptInput = document.getElementById("promptInput"); | |
| const generateBtn = document.getElementById("generateBtn"); | |
| const micBtn = document.getElementById("micBtn"); | |
| const codeOutput = document.getElementById("codeOutput"); | |
| const copyBtn = document.getElementById("copyBtn"); | |
| const clearBtn = document.getElementById("clearBtn"); | |
| function fakeGenerate(prompt) { | |
| // Remplace ça plus tard par ton API IA (OpenRouter, local, etc.) | |
| const p = (prompt || "").trim(); | |
| if (!p) return "// Écris une demande dans la barre en bas, puis clique sur Générer ✨"; | |
| return `// ✅ Demande reçue : ${p} | |
| function main() { | |
| console.log("Hello Rosalinda!"); | |
| } | |
| // (Ici, tu brancheras ton IA pour générer du vrai code) | |
| main();`; | |
| } | |
| generateBtn.addEventListener("click", () => { | |
| const prompt = promptInput.value; | |
| codeOutput.textContent = fakeGenerate(prompt); | |
| }); | |
| document.querySelectorAll(".chip").forEach((btn) => { | |
| btn.addEventListener("click", () => { | |
| const p = btn.dataset.prompt || ""; | |
| promptInput.value = p; | |
| codeOutput.textContent = fakeGenerate(p); | |
| }); | |
| }); | |
| copyBtn.addEventListener("click", async () => { | |
| try { | |
| await navigator.clipboard.writeText(codeOutput.textContent); | |
| copyBtn.textContent = "✅ Copié"; | |
| setTimeout(() => (copyBtn.textContent = "📄 Copier"), 1200); | |
| } catch { | |
| alert("Impossible de copier automatiquement. Copie manuelle nécessaire."); | |
| } | |
| }); | |
| clearBtn.addEventListener("click", () => { | |
| promptInput.value = ""; | |
| codeOutput.textContent = "// Le code généré apparaîtra ici…"; | |
| }); | |
| /* 🎤 Micro (Web Speech API) — si dispo */ | |
| let recognition = null; | |
| if ("webkitSpeechRecognition" in window || "SpeechRecognition" in window) { | |
| const SR = window.SpeechRecognition || window.webkitSpeechRecognition; | |
| recognition = new SR(); | |
| recognition.lang = "fr-FR"; | |
| recognition.interimResults = true; | |
| recognition.onresult = (event) => { | |
| let transcript = ""; | |
| for (let i = event.resultIndex; i < event.results.length; i++) { | |
| transcript += event.results[i][0].transcript; | |
| } | |
| promptInput.value = transcript.trim(); | |
| }; | |
| recognition.onerror = () => { | |
| // silencieux (évite bugs visuels) | |
| }; | |
| } | |
| micBtn.addEventListener("click", () => { | |
| if (!recognition) { | |
| alert("Micro non disponible sur ce navigateur (Web Speech API)."); | |
| return; | |
| } | |
| try { | |
| recognition.start(); | |
| } catch { | |
| // évite erreur si déjà lancé | |
| } | |
| }); |