|
1587 | 1587 | navigator.vibrate(5); |
1588 | 1588 | } |
1589 | 1589 |
|
1590 | | - // Emit chat event for TTS |
1591 | | - const messageContentParts = getMessageContentParts( |
1592 | | - removeAllDetails(message.content), |
1593 | | - $config?.audio?.tts?.split_on ?? 'punctuation' |
1594 | | - ); |
1595 | | - messageContentParts.pop(); |
1596 | | -
|
1597 | | - // dispatch only last sentence and make sure it hasn't been dispatched before |
1598 | | - if ( |
1599 | | - messageContentParts.length > 0 && |
1600 | | - messageContentParts[messageContentParts.length - 1] !== message.lastSentence |
1601 | | - ) { |
1602 | | - message.lastSentence = messageContentParts[messageContentParts.length - 1]; |
1603 | | - eventTarget.dispatchEvent( |
1604 | | - new CustomEvent('chat', { |
1605 | | - detail: { |
1606 | | - id: message.id, |
1607 | | - content: messageContentParts[messageContentParts.length - 1] |
1608 | | - } |
1609 | | - }) |
| 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' |
1610 | 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] !== |
| 1602 | + message.lastSentence |
| 1603 | + ) { |
| 1604 | + message.lastSentence = |
| 1605 | + messageContentParts[messageContentParts.length - 1]; |
| 1606 | + eventTarget.dispatchEvent( |
| 1607 | + new CustomEvent('chat', { |
| 1608 | + detail: { |
| 1609 | + id: message.id, |
| 1610 | + content: messageContentParts[messageContentParts.length - 1] |
| 1611 | + } |
| 1612 | + }) |
| 1613 | + ); |
| 1614 | + } |
1611 | 1615 | } |
1612 | 1616 | } |
1613 | 1617 | } |
|
1621 | 1625 | navigator.vibrate(5); |
1622 | 1626 | } |
1623 | 1627 |
|
1624 | | - // Emit chat event for TTS |
1625 | | - const messageContentParts = getMessageContentParts( |
1626 | | - removeAllDetails(message.content), |
1627 | | - $config?.audio?.tts?.split_on ?? 'punctuation' |
1628 | | - ); |
1629 | | - messageContentParts.pop(); |
1630 | | -
|
1631 | | - // dispatch only last sentence and make sure it hasn't been dispatched before |
1632 | | - if ( |
1633 | | - messageContentParts.length > 0 && |
1634 | | - messageContentParts[messageContentParts.length - 1] !== message.lastSentence |
1635 | | - ) { |
1636 | | - message.lastSentence = messageContentParts[messageContentParts.length - 1]; |
1637 | | - eventTarget.dispatchEvent( |
1638 | | - new CustomEvent('chat', { |
1639 | | - detail: { |
1640 | | - id: message.id, |
1641 | | - content: messageContentParts[messageContentParts.length - 1] |
1642 | | - } |
1643 | | - }) |
| 1628 | + // Emit chat event for TTS (skip when TTS is not active) |
| 1629 | + if ($settings?.responseAutoPlayback || $showCallOverlay) { |
| 1630 | + const messageContentParts = getMessageContentParts( |
| 1631 | + removeAllDetails(message.content), |
| 1632 | + $config?.audio?.tts?.split_on ?? 'punctuation' |
1644 | 1633 | ); |
| 1634 | + messageContentParts.pop(); |
| 1635 | +
|
| 1636 | + // dispatch only last sentence and make sure it hasn't been dispatched before |
| 1637 | + if ( |
| 1638 | + messageContentParts.length > 0 && |
| 1639 | + messageContentParts[messageContentParts.length - 1] !== message.lastSentence |
| 1640 | + ) { |
| 1641 | + message.lastSentence = messageContentParts[messageContentParts.length - 1]; |
| 1642 | + eventTarget.dispatchEvent( |
| 1643 | + new CustomEvent('chat', { |
| 1644 | + detail: { |
| 1645 | + id: message.id, |
| 1646 | + content: messageContentParts[messageContentParts.length - 1] |
| 1647 | + } |
| 1648 | + }) |
| 1649 | + ); |
| 1650 | + } |
1645 | 1651 | } |
1646 | 1652 | } |
1647 | 1653 |
|
|
0 commit comments