|
1602 | 1602 | navigator.vibrate(5); |
1603 | 1603 | } |
1604 | 1604 |
|
1605 | | - // Emit chat event for TTS |
1606 | | - const messageContentParts = getMessageContentParts( |
1607 | | - removeAllDetails(message.content), |
1608 | | - $config?.audio?.tts?.split_on ?? 'punctuation' |
1609 | | - ); |
1610 | | - messageContentParts.pop(); |
1611 | | -
|
1612 | | - // dispatch only last sentence and make sure it hasn't been dispatched before |
1613 | | - if ( |
1614 | | - messageContentParts.length > 0 && |
1615 | | - messageContentParts[messageContentParts.length - 1] !== message.lastSentence |
1616 | | - ) { |
1617 | | - message.lastSentence = messageContentParts[messageContentParts.length - 1]; |
1618 | | - eventTarget.dispatchEvent( |
1619 | | - new CustomEvent('chat', { |
1620 | | - detail: { |
1621 | | - id: message.id, |
1622 | | - content: messageContentParts[messageContentParts.length - 1] |
1623 | | - } |
1624 | | - }) |
| 1605 | + // Emit chat event for TTS (skip when TTS is not active) |
| 1606 | + if ($settings?.responseAutoPlayback || $showCallOverlay) { |
| 1607 | + const messageContentParts = getMessageContentParts( |
| 1608 | + removeAllDetails(message.content), |
| 1609 | + $config?.audio?.tts?.split_on ?? 'punctuation' |
1625 | 1610 | ); |
| 1611 | + messageContentParts.pop(); |
| 1612 | +
|
| 1613 | + // dispatch only last sentence and make sure it hasn't been dispatched before |
| 1614 | + if ( |
| 1615 | + messageContentParts.length > 0 && |
| 1616 | + messageContentParts[messageContentParts.length - 1] !== |
| 1617 | + message.lastSentence |
| 1618 | + ) { |
| 1619 | + message.lastSentence = |
| 1620 | + messageContentParts[messageContentParts.length - 1]; |
| 1621 | + eventTarget.dispatchEvent( |
| 1622 | + new CustomEvent('chat', { |
| 1623 | + detail: { |
| 1624 | + id: message.id, |
| 1625 | + content: messageContentParts[messageContentParts.length - 1] |
| 1626 | + } |
| 1627 | + }) |
| 1628 | + ); |
| 1629 | + } |
1626 | 1630 | } |
1627 | 1631 | } |
1628 | 1632 | } |
|
1636 | 1640 | navigator.vibrate(5); |
1637 | 1641 | } |
1638 | 1642 |
|
1639 | | - // Emit chat event for TTS |
1640 | | - const messageContentParts = getMessageContentParts( |
1641 | | - removeAllDetails(message.content), |
1642 | | - $config?.audio?.tts?.split_on ?? 'punctuation' |
1643 | | - ); |
1644 | | - messageContentParts.pop(); |
1645 | | -
|
1646 | | - // dispatch only last sentence and make sure it hasn't been dispatched before |
1647 | | - if ( |
1648 | | - messageContentParts.length > 0 && |
1649 | | - messageContentParts[messageContentParts.length - 1] !== message.lastSentence |
1650 | | - ) { |
1651 | | - message.lastSentence = messageContentParts[messageContentParts.length - 1]; |
1652 | | - eventTarget.dispatchEvent( |
1653 | | - new CustomEvent('chat', { |
1654 | | - detail: { |
1655 | | - id: message.id, |
1656 | | - content: messageContentParts[messageContentParts.length - 1] |
1657 | | - } |
1658 | | - }) |
| 1643 | + // Emit chat event for TTS (skip when TTS is not active) |
| 1644 | + if ($settings?.responseAutoPlayback || $showCallOverlay) { |
| 1645 | + const messageContentParts = getMessageContentParts( |
| 1646 | + removeAllDetails(message.content), |
| 1647 | + $config?.audio?.tts?.split_on ?? 'punctuation' |
1659 | 1648 | ); |
| 1649 | + messageContentParts.pop(); |
| 1650 | +
|
| 1651 | + // dispatch only last sentence and make sure it hasn't been dispatched before |
| 1652 | + if ( |
| 1653 | + messageContentParts.length > 0 && |
| 1654 | + messageContentParts[messageContentParts.length - 1] !== message.lastSentence |
| 1655 | + ) { |
| 1656 | + message.lastSentence = messageContentParts[messageContentParts.length - 1]; |
| 1657 | + eventTarget.dispatchEvent( |
| 1658 | + new CustomEvent('chat', { |
| 1659 | + detail: { |
| 1660 | + id: message.id, |
| 1661 | + content: messageContentParts[messageContentParts.length - 1] |
| 1662 | + } |
| 1663 | + }) |
| 1664 | + ); |
| 1665 | + } |
1660 | 1666 | } |
1661 | 1667 | } |
1662 | 1668 |
|
|
0 commit comments