diff --git a/components/InfoBlock.tsx b/components/InfoBlock.tsx index 147c736..729be49 100644 --- a/components/InfoBlock.tsx +++ b/components/InfoBlock.tsx @@ -1,21 +1,21 @@ -'use client'; +"use client"; // NextJs components -import Image from 'next/image'; -import Link from 'next/link'; +import Image from "next/image"; +import Link from "next/link"; // React query -import { useQuery } from '@tanstack/react-query'; -import { Queries } from '@/api/queries'; +import { useQuery } from "@tanstack/react-query"; +import { Queries } from "@/api/queries"; // Components -import Loader from './Loader'; -import VideoPlayer from './VideoPlayer'; -import SectionTitle from './SectionTitle'; +import Loader from "./Loader"; +import VideoPlayer from "./VideoPlayer"; +import SectionTitle from "./SectionTitle"; // Images and cions -import { SlEye } from 'react-icons/sl'; -import aydym from '@/public/aydym-com.webp'; -import horjun from '@/public/horjun.png'; -import belet from '@/public/belet.jpg'; +import { SlEye } from "react-icons/sl"; +import aydym from "@/public/aydym-com.webp"; +import horjun from "@/public/horjun.png"; +import belet from "@/public/belet.jpg"; -import ReactionsBlock from './treasury/ReactionsBlock'; +import ReactionsBlock from "./treasury/ReactionsBlock"; interface IProps { video_id: number; @@ -23,11 +23,16 @@ interface IProps { const InfoBlock = ({ video_id }: IProps) => { const { data, isFetching, error } = useQuery({ - queryKey: ['video', video_id], + queryKey: ["video", video_id], queryFn: () => Queries.getVideo(video_id), }); - if (isFetching) return ; + if (isFetching) + return ( +
+ +
+ ); if (error) return

{JSON.stringify(error)}

; return ( @@ -39,7 +44,9 @@ const InfoBlock = ({ video_id }: IProps) => {
{
- +
{data?.data.desc ? ( -

{data!.data.desc}

+

+ {data!.data.desc} +

) : null} @@ -66,15 +79,22 @@ const InfoBlock = ({ video_id }: IProps) => { data?.data.horjun_content_url || data?.data.belet_url ? (
-

Beýleki platformalarda seret:

+

+ Beýleki platformalarda seret: +

{data?.data.aydym_com_url ? ( + className="flex flex-col items-center justify-center gap-2" + >
- Aydym.com + Aydym.com

Aydym.com

@@ -83,9 +103,14 @@ const InfoBlock = ({ video_id }: IProps) => { + className="flex flex-col items-center justify-center gap-2" + >
- HorjunTv + HorjunTv

HorjunTv

@@ -94,9 +119,14 @@ const InfoBlock = ({ video_id }: IProps) => { + className="flex flex-col items-center justify-center gap-2" + >
- BeletTv + BeletTv

BeletFilm

diff --git a/components/VideoPlayer.tsx b/components/VideoPlayer.tsx index 1c57c28..f160d1f 100644 --- a/components/VideoPlayer.tsx +++ b/components/VideoPlayer.tsx @@ -28,7 +28,11 @@ const VideoPlayer = ({ maxHeight, maxWidth, video_id }: IProps) => { queryKey: ["video", `video:${video_id}`], queryFn: async () => { const response = await Queries.getVideo(video_id); - // setCanDownload(response.data.canDownload); // Set canDownload from API + if (response.data.is_downloadable === 0) { + setCanDownload(false); + } else { + setCanDownload(true); + } // Set canDownload from API return response; }, }); @@ -48,7 +52,12 @@ const VideoPlayer = ({ maxHeight, maxWidth, video_id }: IProps) => { } }; - if (isFetching) return ; + if (isFetching) + return ( +
+ +
+ ); if (error) return

{JSON.stringify(error)}

; return ( diff --git a/models/video.model.ts b/models/video.model.ts index c8571a2..e8105bb 100644 --- a/models/video.model.ts +++ b/models/video.model.ts @@ -18,4 +18,5 @@ export interface Data { video_stream_url: string; likes: number; dislikes: number; + is_downloadable: 0 | 1; }