ciyidogan commited on
Commit
e12fd54
·
verified ·
1 Parent(s): 5709c7e

Update flare-ui/src/app/services/conversation-manager.service.ts

Browse files
flare-ui/src/app/services/conversation-manager.service.ts CHANGED
@@ -505,19 +505,23 @@ export class ConversationManagerService implements OnDestroy {
505
 
506
  // Update last message with audio URL
507
  const messages = this.messagesSubject.value;
508
- if (messages.length > 0 && messages[messages.length - 1].role === 'assistant') {
509
- messages[messages.length - 1].audioUrl = audioUrl;
510
- this.messagesSubject.next([...messages]);
511
- console.log('✅ Audio URL attached to assistant message');
512
-
513
- // Auto-play welcome message
514
- if (messages.length === 1) {
515
- setTimeout(() => {
516
- this.playAudio(audioUrl);
517
- }, 500);
 
 
 
 
 
 
518
  }
519
- } else {
520
- console.warn('⚠️ No assistant message found to attach audio');
521
  }
522
 
523
  // Clear queue
@@ -535,6 +539,15 @@ export class ConversationManagerService implements OnDestroy {
535
  console.error('❌ Error handling TTS audio:', error);
536
  this.audioQueue = []; // Clear queue on error
537
  }
 
 
 
 
 
 
 
 
 
538
  }
539
 
540
  private isValidBase64(str: string): boolean {
 
505
 
506
  // Update last message with audio URL
507
  const messages = this.messagesSubject.value;
508
+ if (messages.length > 0) {
509
+ const lastAssistantMessageIndex = this.findLastAssistantMessageIndex(messages);
510
+ if (lastAssistantMessageIndex >= 0) {
511
+ messages[lastAssistantMessageIndex].audioUrl = audioUrl;
512
+ this.messagesSubject.next([...messages]);
513
+ console.log('✅ Audio URL attached to assistant message at index:', lastAssistantMessageIndex);
514
+
515
+ // Auto-play if it's welcome message or if in playing_audio state
516
+ if (messages.length === 1 || this.currentStateSubject.value === 'playing_audio') {
517
+ setTimeout(() => {
518
+ console.log('🎵 Auto-playing audio...');
519
+ this.playAudio(audioUrl);
520
+ }, 500);
521
+ }
522
+ } else {
523
+ console.warn('⚠️ No assistant message found to attach audio');
524
  }
 
 
525
  }
526
 
527
  // Clear queue
 
539
  console.error('❌ Error handling TTS audio:', error);
540
  this.audioQueue = []; // Clear queue on error
541
  }
542
+ }
543
+
544
+ private findLastAssistantMessageIndex(messages: ConversationMessage[]): number {
545
+ for (let i = messages.length - 1; i >= 0; i--) {
546
+ if (messages[i].role === 'assistant') {
547
+ return i;
548
+ }
549
+ }
550
+ return -1;
551
  }
552
 
553
  private isValidBase64(str: string): boolean {