'use client' import { memo, useMemo } from 'react' import { type AudioData } from '@/types/playground' import { decodeBase64Audio } from '@/lib/audio' /** * Renders a single audio item with controls * @param audio - AudioData object containing url or base64 audio data */ const AudioItem = memo(({ audio }: { audio: AudioData }) => { const audioUrl = useMemo(() => { if (audio?.url) { return audio.url } if (audio.base64_audio) { return decodeBase64Audio( audio.base64_audio, audio.mime_type || 'audio/wav' ) } if (audio.content) { return decodeBase64Audio( audio.content, 'audio/pcm16', audio.sample_rate, audio.channels ) } return null }, [audio]) if (!audioUrl) return null return (