|
1549 | 1549 | navigator.vibrate(5); |
1550 | 1550 | } |
1551 | 1551 |
|
1552 | | - // Emit chat event for TTS |
1553 | | - const messageContentParts = getMessageContentParts( |
1554 | | - removeAllDetails(message.content), |
1555 | | - $config?.audio?.tts?.split_on ?? 'punctuation' |
1556 | | - ); |
1557 | | - messageContentParts.pop(); |
1558 | | -
|
1559 | | - // dispatch only last sentence and make sure it hasn't been dispatched before |
1560 | | - if ( |
1561 | | - messageContentParts.length > 0 && |
1562 | | - messageContentParts[messageContentParts.length - 1] !== message.lastSentence |
1563 | | - ) { |
1564 | | - message.lastSentence = messageContentParts[messageContentParts.length - 1]; |
1565 | | - eventTarget.dispatchEvent( |
1566 | | - new CustomEvent('chat', { |
1567 | | - detail: { |
1568 | | - id: message.id, |
1569 | | - content: messageContentParts[messageContentParts.length - 1] |
1570 | | - } |
1571 | | - }) |
| 1552 | + // Emit chat event for TTS (skip when TTS is not active) |
| 1553 | + if ($settings?.responseAutoPlayback || $showCallOverlay) { |
| 1554 | + const messageContentParts = getMessageContentParts( |
| 1555 | + removeAllDetails(message.content), |
| 1556 | + $config?.audio?.tts?.split_on ?? 'punctuation' |
1572 | 1557 | ); |
| 1558 | + messageContentParts.pop(); |
| 1559 | +
|
| 1560 | + // dispatch only last sentence and make sure it hasn't been dispatched before |
| 1561 | + if ( |
| 1562 | + messageContentParts.length > 0 && |
| 1563 | + messageContentParts[messageContentParts.length - 1] !== |
| 1564 | + message.lastSentence |
| 1565 | + ) { |
| 1566 | + message.lastSentence = |
| 1567 | + messageContentParts[messageContentParts.length - 1]; |
| 1568 | + eventTarget.dispatchEvent( |
| 1569 | + new CustomEvent('chat', { |
| 1570 | + detail: { |
| 1571 | + id: message.id, |
| 1572 | + content: messageContentParts[messageContentParts.length - 1] |
| 1573 | + } |
| 1574 | + }) |
| 1575 | + ); |
| 1576 | + } |
1573 | 1577 | } |
1574 | 1578 | } |
1575 | 1579 | } |
|
1583 | 1587 | navigator.vibrate(5); |
1584 | 1588 | } |
1585 | 1589 |
|
1586 | | - // Emit chat event for TTS |
1587 | | - const messageContentParts = getMessageContentParts( |
1588 | | - removeAllDetails(message.content), |
1589 | | - $config?.audio?.tts?.split_on ?? 'punctuation' |
1590 | | - ); |
1591 | | - messageContentParts.pop(); |
1592 | | -
|
1593 | | - // dispatch only last sentence and make sure it hasn't been dispatched before |
1594 | | - if ( |
1595 | | - messageContentParts.length > 0 && |
1596 | | - messageContentParts[messageContentParts.length - 1] !== message.lastSentence |
1597 | | - ) { |
1598 | | - message.lastSentence = messageContentParts[messageContentParts.length - 1]; |
1599 | | - eventTarget.dispatchEvent( |
1600 | | - new CustomEvent('chat', { |
1601 | | - detail: { |
1602 | | - id: message.id, |
1603 | | - content: messageContentParts[messageContentParts.length - 1] |
1604 | | - } |
1605 | | - }) |
| 1590 | + // Emit chat event for TTS (skip when TTS is not active) |
| 1591 | + if ($settings?.responseAutoPlayback || $showCallOverlay) { |
| 1592 | + const messageContentParts = getMessageContentParts( |
| 1593 | + removeAllDetails(message.content), |
| 1594 | + $config?.audio?.tts?.split_on ?? 'punctuation' |
1606 | 1595 | ); |
| 1596 | + messageContentParts.pop(); |
| 1597 | +
|
| 1598 | + // dispatch only last sentence and make sure it hasn't been dispatched before |
| 1599 | + if ( |
| 1600 | + messageContentParts.length > 0 && |
| 1601 | + messageContentParts[messageContentParts.length - 1] !== message.lastSentence |
| 1602 | + ) { |
| 1603 | + message.lastSentence = messageContentParts[messageContentParts.length - 1]; |
| 1604 | + eventTarget.dispatchEvent( |
| 1605 | + new CustomEvent('chat', { |
| 1606 | + detail: { |
| 1607 | + id: message.id, |
| 1608 | + content: messageContentParts[messageContentParts.length - 1] |
| 1609 | + } |
| 1610 | + }) |
| 1611 | + ); |
| 1612 | + } |
1607 | 1613 | } |
1608 | 1614 | } |
1609 | 1615 |
|
|
0 commit comments