fix videoplayer
This commit is contained in:
parent
bb3aeea99b
commit
1b0e63b73c
|
|
@ -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>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
Loading…
Reference in New Issue
Block a user