Refac improve inline embeddable player functionality

This commit is contained in:
MerlinScheurer 2024-12-27 19:31:45 +01:00
parent 3d43ade857
commit 20e3b7b7ff
4 changed files with 17 additions and 3 deletions

View File

@ -27,12 +27,14 @@ const EmbeddableVideoPlayer = ({ videoId }: EmbeddableVideoPlayerProps) => {
const [, setSearchParams] = useSearchParams();
const [refresh, setRefresh] = useState(false);
const [loading, setLoading] = useState(false);
const [videoResponse, setVideoResponse] = useState<VideoResponseType>();
const [playlists, setPlaylists] = useState<PlaylistList>();
useEffect(() => {
(async () => {
setLoading(true);
const videoResponse = await loadVideoById(videoId);
const playlistIds = videoResponse.data.playlist;
@ -62,6 +64,7 @@ const EmbeddableVideoPlayer = ({ videoId }: EmbeddableVideoPlayerProps) => {
setVideoResponse(videoResponse);
setRefresh(false);
setLoading(false);
})();
}, [videoId, refresh]);
@ -87,7 +90,14 @@ const EmbeddableVideoPlayer = ({ videoId }: EmbeddableVideoPlayerProps) => {
<>
<div className="player-wrapper">
<div className="video-player">
<VideoPlayer video={videoResponse} sponsorBlock={sponsorblock} embed={true} />
{!loading && (
<VideoPlayer
video={videoResponse}
sponsorBlock={sponsorblock}
embed={true}
autoplay={true}
/>
)}
<div className="player-title boxed-content">
<img

View File

@ -39,6 +39,8 @@ const VideoListItem = ({
<a
onClick={() => {
setSearchParams({ videoId: video.youtube_id });
window.scroll({ top: 0, left: 0, behavior: 'smooth' });
}}
>
<div className={`video-thumb-wrap ${viewLayout}`}>

View File

@ -171,6 +171,9 @@ const Home = () => {
<>
<title>TubeArchivist</title>
<ScrollToTopOnNavigate />
{showEmbeddedVideo && <EmbeddableVideoPlayer videoId={videoId} />}
<div className={`boxed-content ${gridView}`}>
{continueVideos && continueVideos.length > 0 && (
<>
@ -212,8 +215,6 @@ const Home = () => {
/>
</div>
{showEmbeddedVideo && <EmbeddableVideoPlayer videoId={videoId} />}
<div className={`boxed-content ${gridView}`}>
<div className={`video-list ${view} ${gridViewGrid}`}>
{!hasVideos && (

View File

@ -515,6 +515,7 @@ video:-webkit-full-screen {
.video-thumb-wrap {
position: relative;
cursor: pointer;
}
.video-thumb-wrap:hover > .video-play {