Abmacode12 commited on
Commit
2202bbb
·
verified ·
1 Parent(s): 7971893

Pourriez-vous s’il vous plaît remettre le micro, le bouton d’envoi, l’ajout de fichiers et toutes les fonctionnalités associées comme avant ?

Browse files
Files changed (2) hide show
  1. components/chat.js +14 -7
  2. style.css +1 -3
components/chat.js CHANGED
@@ -204,6 +204,7 @@ connectedCallback() {
204
  const micStatus = shadow.getElementById('micStatus');
205
 
206
  let recognition;
 
207
  // File upload
208
  fileButton.addEventListener('click', () => fileInput.click());
209
  fileInput.addEventListener('change', (e) => {
@@ -211,6 +212,7 @@ connectedCallback() {
211
  filesInfo.textContent = this._files.length ?
212
  `${this._files.length} fichier(s) sélectionné(s)` : '';
213
  });
 
214
  // Connect apps
215
  connectButton.addEventListener('click', () => {
216
  this._addMessage('assistant',
@@ -218,10 +220,14 @@ connectedCallback() {
218
  '- Votre espace de stockage\n- Outils de création\n- API externes\n' +
219
  'Quel service souhaitez-vous connecter?');
220
  });
 
221
  // Speech recognition
222
  micButton.addEventListener('click', () => {
223
  if (this._speechState === 'listening') {
224
- this._stopSpeechRecognition(recognition, micButton, micStatus);
 
 
 
225
  return;
226
  }
227
 
@@ -247,9 +253,7 @@ connectedCallback() {
247
  recognition.onresult = (event) => {
248
  let transcript = '';
249
  for (let i = event.resultIndex; i < event.results.length; i++) {
250
- if (event.results[i].isFinal) {
251
- transcript += event.results[i][0].transcript;
252
- }
253
  }
254
  messageInput.value = transcript;
255
  };
@@ -260,6 +264,7 @@ connectedCallback() {
260
  micStatus.textContent = 'Micro bloqué';
261
  } else {
262
  this._speechState = 'idle';
 
263
  }
264
  micButton.classList.remove('listening');
265
  setTimeout(() => micStatus.textContent = 'En ligne', 2000);
@@ -278,8 +283,10 @@ connectedCallback() {
278
  } catch (err) {
279
  this._speechState = 'idle';
280
  micStatus.textContent = 'Erreur micro';
 
281
  }
282
  });
 
283
  // Send message
284
  const sendMessage = () => {
285
  const message = messageInput.value.trim();
@@ -293,7 +300,7 @@ connectedCallback() {
293
  filesInfo.textContent = '';
294
  fileInput.value = '';
295
 
296
- // Simulate Rosalinda's intelligent response
297
  setTimeout(() => {
298
  const responses = [
299
  "J'ai bien reçu votre demande. Je travaille sur une solution créative...",
@@ -306,11 +313,11 @@ connectedCallback() {
306
  }, 1500);
307
  }
308
  };
309
- sendButton.addEventListener('click', sendMessage);
310
  messageInput.addEventListener('keydown', (e) => {
311
  if (e.key === 'Enter') sendMessage();
312
  });
313
- }
314
 
315
  _addMessage(role, content) {
316
  this._messages.push({ role, content });
 
204
  const micStatus = shadow.getElementById('micStatus');
205
 
206
  let recognition;
207
+
208
  // File upload
209
  fileButton.addEventListener('click', () => fileInput.click());
210
  fileInput.addEventListener('change', (e) => {
 
212
  filesInfo.textContent = this._files.length ?
213
  `${this._files.length} fichier(s) sélectionné(s)` : '';
214
  });
215
+
216
  // Connect apps
217
  connectButton.addEventListener('click', () => {
218
  this._addMessage('assistant',
 
220
  '- Votre espace de stockage\n- Outils de création\n- API externes\n' +
221
  'Quel service souhaitez-vous connecter?');
222
  });
223
+
224
  // Speech recognition
225
  micButton.addEventListener('click', () => {
226
  if (this._speechState === 'listening') {
227
+ if (recognition) recognition.stop();
228
+ this._speechState = 'idle';
229
+ micButton.classList.remove('listening');
230
+ micStatus.textContent = 'En ligne';
231
  return;
232
  }
233
 
 
253
  recognition.onresult = (event) => {
254
  let transcript = '';
255
  for (let i = event.resultIndex; i < event.results.length; i++) {
256
+ transcript += event.results[i][0].transcript;
 
 
257
  }
258
  messageInput.value = transcript;
259
  };
 
264
  micStatus.textContent = 'Micro bloqué';
265
  } else {
266
  this._speechState = 'idle';
267
+ micStatus.textContent = 'Erreur micro';
268
  }
269
  micButton.classList.remove('listening');
270
  setTimeout(() => micStatus.textContent = 'En ligne', 2000);
 
283
  } catch (err) {
284
  this._speechState = 'idle';
285
  micStatus.textContent = 'Erreur micro';
286
+ micButton.classList.remove('listening');
287
  }
288
  });
289
+
290
  // Send message
291
  const sendMessage = () => {
292
  const message = messageInput.value.trim();
 
300
  filesInfo.textContent = '';
301
  fileInput.value = '';
302
 
303
+ // Simulate Rosalinda's response
304
  setTimeout(() => {
305
  const responses = [
306
  "J'ai bien reçu votre demande. Je travaille sur une solution créative...",
 
313
  }, 1500);
314
  }
315
  };
316
+ sendButton.addEventListener('click', sendMessage);
317
  messageInput.addEventListener('keydown', (e) => {
318
  if (e.key === 'Enter') sendMessage();
319
  });
320
+ }
321
 
322
  _addMessage(role, content) {
323
  this._messages.push({ role, content });
style.css CHANGED
@@ -44,13 +44,11 @@ custom-chat {
44
  padding: 0.75rem 1rem;
45
  margin-bottom: 0.5rem;
46
  }
47
-
48
  .mic-button.listening {
49
- background-color: #ef4444 !important;
50
  color: white !important;
51
  animation: pulse 1.5s infinite;
52
  }
53
-
54
  @keyframes pulse {
55
  0% { opacity: 1; }
56
  50% { opacity: 0.7; }
 
44
  padding: 0.75rem 1rem;
45
  margin-bottom: 0.5rem;
46
  }
 
47
  .mic-button.listening {
48
+ background-color: #3b82f6 !important;
49
  color: white !important;
50
  animation: pulse 1.5s infinite;
51
  }
 
52
  @keyframes pulse {
53
  0% { opacity: 1; }
54
  50% { opacity: 0.7; }