|
1512 | 1512 | navigator.vibrate(5); |
1513 | 1513 | } |
1514 | 1514 |
|
1515 | | - // Emit chat event for TTS |
1516 | | - const messageContentParts = getMessageContentParts( |
1517 | | - removeAllDetails(message.content), |
1518 | | - $config?.audio?.tts?.split_on ?? 'punctuation' |
1519 | | - ); |
1520 | | - messageContentParts.pop(); |
1521 | | -
|
1522 | | - // dispatch only last sentence and make sure it hasn't been dispatched before |
1523 | | - if ( |
1524 | | - messageContentParts.length > 0 && |
1525 | | - messageContentParts[messageContentParts.length - 1] !== message.lastSentence |
1526 | | - ) { |
1527 | | - message.lastSentence = messageContentParts[messageContentParts.length - 1]; |
1528 | | - eventTarget.dispatchEvent( |
1529 | | - new CustomEvent('chat', { |
1530 | | - detail: { |
1531 | | - id: message.id, |
1532 | | - content: messageContentParts[messageContentParts.length - 1] |
1533 | | - } |
1534 | | - }) |
| 1515 | + // Emit chat event for TTS (skip when TTS is not active) |
| 1516 | + if ($settings?.responseAutoPlayback || $showCallOverlay) { |
| 1517 | + const messageContentParts = getMessageContentParts( |
| 1518 | + removeAllDetails(message.content), |
| 1519 | + $config?.audio?.tts?.split_on ?? 'punctuation' |
1535 | 1520 | ); |
| 1521 | + messageContentParts.pop(); |
| 1522 | +
|
| 1523 | + // dispatch only last sentence and make sure it hasn't been dispatched before |
| 1524 | + if ( |
| 1525 | + messageContentParts.length > 0 && |
| 1526 | + messageContentParts[messageContentParts.length - 1] !== |
| 1527 | + message.lastSentence |
| 1528 | + ) { |
| 1529 | + message.lastSentence = |
| 1530 | + messageContentParts[messageContentParts.length - 1]; |
| 1531 | + eventTarget.dispatchEvent( |
| 1532 | + new CustomEvent('chat', { |
| 1533 | + detail: { |
| 1534 | + id: message.id, |
| 1535 | + content: messageContentParts[messageContentParts.length - 1] |
| 1536 | + } |
| 1537 | + }) |
| 1538 | + ); |
| 1539 | + } |
1536 | 1540 | } |
1537 | 1541 | } |
1538 | 1542 | } |
|
1546 | 1550 | navigator.vibrate(5); |
1547 | 1551 | } |
1548 | 1552 |
|
1549 | | - // Emit chat event for TTS |
1550 | | - const messageContentParts = getMessageContentParts( |
1551 | | - removeAllDetails(message.content), |
1552 | | - $config?.audio?.tts?.split_on ?? 'punctuation' |
1553 | | - ); |
1554 | | - messageContentParts.pop(); |
1555 | | -
|
1556 | | - // dispatch only last sentence and make sure it hasn't been dispatched before |
1557 | | - if ( |
1558 | | - messageContentParts.length > 0 && |
1559 | | - messageContentParts[messageContentParts.length - 1] !== message.lastSentence |
1560 | | - ) { |
1561 | | - message.lastSentence = messageContentParts[messageContentParts.length - 1]; |
1562 | | - eventTarget.dispatchEvent( |
1563 | | - new CustomEvent('chat', { |
1564 | | - detail: { |
1565 | | - id: message.id, |
1566 | | - content: messageContentParts[messageContentParts.length - 1] |
1567 | | - } |
1568 | | - }) |
| 1553 | + // Emit chat event for TTS (skip when TTS is not active) |
| 1554 | + if ($settings?.responseAutoPlayback || $showCallOverlay) { |
| 1555 | + const messageContentParts = getMessageContentParts( |
| 1556 | + removeAllDetails(message.content), |
| 1557 | + $config?.audio?.tts?.split_on ?? 'punctuation' |
1569 | 1558 | ); |
| 1559 | + messageContentParts.pop(); |
| 1560 | +
|
| 1561 | + // dispatch only last sentence and make sure it hasn't been dispatched before |
| 1562 | + if ( |
| 1563 | + messageContentParts.length > 0 && |
| 1564 | + messageContentParts[messageContentParts.length - 1] !== message.lastSentence |
| 1565 | + ) { |
| 1566 | + message.lastSentence = messageContentParts[messageContentParts.length - 1]; |
| 1567 | + eventTarget.dispatchEvent( |
| 1568 | + new CustomEvent('chat', { |
| 1569 | + detail: { |
| 1570 | + id: message.id, |
| 1571 | + content: messageContentParts[messageContentParts.length - 1] |
| 1572 | + } |
| 1573 | + }) |
| 1574 | + ); |
| 1575 | + } |
1570 | 1576 | } |
1571 | 1577 | } |
1572 | 1578 |
|
|
0 commit comments