Spaces:
Running
Running
File size: 2,434 Bytes
dca3691 | 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 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é
}
}); |