| .. | .. |
|---|
| 11 | 11 | import { ImageCaptionModal } from "../components/chat/ImageCaptionModal"; |
|---|
| 12 | 12 | import { StatusDot } from "../components/ui/StatusDot"; |
|---|
| 13 | 13 | import { SessionDrawer } from "../components/SessionDrawer"; |
|---|
| 14 | | -import { playAudio, stopPlayback, isPlaying, onPlayingChange } from "../services/audio"; |
|---|
| 14 | +import { playSingle, stopPlayback, isPlaying, onPlayingChange } from "../services/audio"; |
|---|
| 15 | 15 | |
|---|
| 16 | 16 | interface StagedImage { |
|---|
| 17 | 17 | base64: string; |
|---|
| .. | .. |
|---|
| 32 | 32 | const [stagedImage, setStagedImage] = useState<StagedImage | null>(null); |
|---|
| 33 | 33 | |
|---|
| 34 | 34 | useEffect(() => { |
|---|
| 35 | | - return onPlayingChange(setAudioPlaying); |
|---|
| 35 | + return onPlayingChange((uri) => setAudioPlaying(uri !== null)); |
|---|
| 36 | 36 | }, []); |
|---|
| 37 | 37 | |
|---|
| 38 | 38 | const handleScreenshot = useCallback(() => { |
|---|
| .. | .. |
|---|
| 137 | 137 | } |
|---|
| 138 | 138 | for (let i = messages.length - 1; i >= 0; i--) { |
|---|
| 139 | 139 | const msg = messages[i]; |
|---|
| 140 | | - if (msg.role === "assistant") { |
|---|
| 141 | | - if (msg.audioUri) { |
|---|
| 142 | | - playAudio(msg.audioUri).catch(() => {}); |
|---|
| 143 | | - } |
|---|
| 140 | + if (msg.role === "assistant" && msg.audioUri) { |
|---|
| 141 | + playSingle(msg.audioUri).catch(() => {}); |
|---|
| 144 | 142 | return; |
|---|
| 145 | 143 | } |
|---|
| 146 | 144 | } |
|---|