From e6baa7e8fc63be6e6eeb41628a70802c05e5ee9d Mon Sep 17 00:00:00 2001 From: codytseng Date: Thu, 9 Oct 2025 22:22:16 +0800 Subject: [PATCH] feat: add error handling for audio, video, and YouTube players --- src/components/AudioPlayer/index.tsx | 8 +++++++- src/components/ExternalLink/index.tsx | 15 +++++++++++++++ src/components/VideoPlayer/index.tsx | 9 ++++++++- src/components/YoutubeEmbeddedPlayer/index.tsx | 9 ++++++++- 4 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 src/components/ExternalLink/index.tsx diff --git a/src/components/AudioPlayer/index.tsx b/src/components/AudioPlayer/index.tsx index cae97bd..f1ad967 100644 --- a/src/components/AudioPlayer/index.tsx +++ b/src/components/AudioPlayer/index.tsx @@ -4,6 +4,7 @@ import { cn } from '@/lib/utils' import mediaManager from '@/services/media-manager.service' import { Pause, Play } from 'lucide-react' import { useEffect, useRef, useState } from 'react' +import ExternalLink from '../ExternalLink' interface AudioPlayerProps { src: string @@ -15,6 +16,7 @@ export default function AudioPlayer({ src, className }: AudioPlayerProps) { const [isPlaying, setIsPlaying] = useState(false) const [currentTime, setCurrentTime] = useState(0) const [duration, setDuration] = useState(0) + const [error, setError] = useState(false) const seekTimeoutRef = useRef() const isSeeking = useRef(false) @@ -78,6 +80,10 @@ export default function AudioPlayer({ src, className }: AudioPlayerProps) { }, 300) } + if (error) { + return + } + return (
e.stopPropagation()} > -