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é
  }
});