import NotFound from "./404"; import { NextPage } from "next"; import { NextSeo } from "next-seo"; import { useRouter } from "next/router"; import { useQuery } from "react-query"; import axios, { AxiosError } from "axios"; import Container from "@mui/material/Container"; import Typography from "@mui/material/Typography"; import { Error } from "@interfaces/api"; import VideoAPI from "@interfaces/api/video"; import { videoToVideo } from "@utils/conversions"; import useSettings from "@utils/hooks/useSettings"; import Layout from "@components/Layout"; import Loading from "@components/Loading"; import Player from "@components/Player"; const Watch: NextPage = () => { const { query, isReady } = useRouter(); const videoId = query["v"]; const [settings] = useSettings(); const { isLoading, error, data } = useQuery< VideoAPI | null, AxiosError >(["videoData", videoId], () => videoId ? axios .get(`https://${settings.invidiousServer}/api/v1/videos/${videoId}`, { params: {} }) .then((res) => res.data) : null ); if (!isReady || isLoading) { return ( <> ); } if (!videoId) { return ; } return ( <> {data && ( <> {data.title} )} ); }; export default Watch;