(messageId)
| 1711 | } |
| 1712 | |
| 1713 | const cleanupTTSForMessage = (messageId) => { |
| 1714 | if (ttsAudio[messageId]) { |
| 1715 | ttsAudio[messageId].pause() |
| 1716 | ttsAudio[messageId].currentTime = 0 |
| 1717 | setTtsAudio((prev) => { |
| 1718 | const newState = { ...prev } |
| 1719 | delete newState[messageId] |
| 1720 | return newState |
| 1721 | }) |
| 1722 | } |
| 1723 | |
| 1724 | if (ttsStreamingState.audio) { |
| 1725 | ttsStreamingState.audio.pause() |
| 1726 | cleanupTTSStreaming() |
| 1727 | } |
| 1728 | |
| 1729 | setIsTTSPlaying((prev) => { |
| 1730 | const newState = { ...prev } |
| 1731 | delete newState[messageId] |
| 1732 | return newState |
| 1733 | }) |
| 1734 | |
| 1735 | setIsTTSLoading((prev) => { |
| 1736 | const newState = { ...prev } |
| 1737 | delete newState[messageId] |
| 1738 | return newState |
| 1739 | }) |
| 1740 | } |
| 1741 | |
| 1742 | const handleTTSStop = async (messageId) => { |
| 1743 | setTTSAction(true) |
no test coverage detected