fix videoplayer

This commit is contained in:
ndmg 2026-11-07 14:38:27 +00:00
parent bb3aeea99b
commit 1b0e63b73c

View File

@ -1,22 +1,21 @@
import { useParams, Link } from 'react-router-dom' import { useEffect } from 'react'
import { useParams, Link, useNavigate } from 'react-router-dom'
import { useQueryClient } from '@tanstack/react-query' import { useQueryClient } from '@tanstack/react-query'
import { useVideo } from '../api/videos' import { useVideo } from '../api/videos'
import { assetUrl } from '../api/client' import { assetUrl } from '../api/client'
import { videoTitle, formatDate } from '../lib/format' import { videoTitle, formatDate } from '../lib/format'
import VideoPlayer from '../components/VideoPlayer' // <--- импорт плеера import VideoPlayer from '../components/VideoPlayer'
import { useEffect } from 'react'
import { useNavigate } from 'react-router-dom'
export default function VideoDetail() { export default function VideoDetail() {
const { id } = useParams() const { id } = useParams()
const qc = useQueryClient() const qc = useQueryClient()
const navigate = useNavigate()
const { data, isLoading, isError, error } = useVideo(Number(id)) const { data, isLoading, isError, error } = useVideo(Number(id))
const navigate = useNavigate() useEffect(() => {
useEffect(() => { if (isError && error?.response?.status === 401) {
if (isError && error?.response?.status === 401) { navigate('/login', { replace: true })
navigate("/login", { replace: true }) }
}
}, [isError, error, navigate]) }, [isError, error, navigate])
const cached = qc const cached = qc
@ -33,20 +32,26 @@ export default function VideoDetail() {
const date = formatDate(merged.date) const date = formatDate(merged.date)
return ( return (
<div className="space-y-4"> <div className="mx-auto max-w-5xl space-y-6">
{/* Навигация */}
{/* Вот тут теперь твой новый плеер */} <Link
<div className="mt-8"> to="/"
<VideoPlayer src={assetUrl(data.path)} poster={poster} /> className="inline-flex items-center gap-2 rounded-xl bg-rose-500 px-4 py-2 text-sm font-medium text-white transition hover:bg-rose-600"
>
<span aria-hidden="true">←</span>
Список видео
</Link>
{/* Плеер */}
<div className="overflow-hidden rounded-2xl bg-black shadow-lg">
<VideoPlayer src={assetUrl(data.path)} poster={poster} />
</div> </div>
<div className="flex items-center"> {/* Информация */}
<Link to="/" className="w-22 text-white bg-rose-500 p-4 rounded-2xl m-4 text-sm hover:bg-rose-600 transition"> <header className="space-y-1">
video list <h1 className="text-2xl font-semibold text-white">{title}</h1>
</Link> {date && <p className="text-sm text-slate-400">{date}</p>}
<h1 className="text-xl font-semibold text-white">{title}</h1> </header>
{date && <p className="text-sm text-slate-400 ml-4">{date}</p>}
</div>
</div> </div>
) )
} }