import { useEffect, useState } from "react";
import { ChevronDownIcon } from "@heroicons/react/20/solid";
import { ForwardIcon } from "@heroicons/react/24/solid";
import { useRouter } from "next/router";
import { signIn } from "next-auth/react";
import Details from "./primary/details";
import VideoPlayer from "../../videoPlayer";
import Link from "next/link";
import Skeleton from "react-loading-skeleton";
import Modal from "../../modal";
import AniList from "../../media/aniList";
export default function PrimarySide({
info,
session,
epiNumber,
navigation,
providerId,
watchId,
onList,
proxy,
disqus,
setOnList,
episodeList,
timeWatched,
dub,
}) {
const [episodeData, setEpisodeData] = useState();
const [open, setOpen] = useState(false);
const [skip, setSkip] = useState();
const [loading, setLoading] = useState(true);
const router = useRouter();
useEffect(() => {
setLoading(true);
async function fetchData() {
if (info) {
const anify = await fetch("/api/v2/source", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
source:
providerId === "gogoanime" && !watchId.startsWith("/")
? "consumet"
: "anify",
providerId: providerId,
watchId: watchId,
episode: epiNumber,
id: info.id,
sub: dub ? "dub" : "sub",
}),
}).then((res) => res.json());
const skip = await fetch(
`https://api.aniskip.com/v2/skip-times/${info.idMal}/${parseInt(
epiNumber
)}?types[]=ed&types[]=mixed-ed&types[]=mixed-op&types[]=op&types[]=recap&episodeLength=`
).then((res) => {
if (!res.ok) {
switch (res.status) {
case 404: {
return null;
}
}
}
return res.json();
});
const op =
skip?.results?.find((item) => item.skipType === "op") || null;
const ed =
skip?.results?.find((item) => item.skipType === "ed") || null;
setSkip({ op, ed });
setEpisodeData(anify);
setLoading(false);
}
}
fetchData();
return () => {
setEpisodeData();
setSkip();
};
}, [providerId, watchId, info]);
useEffect(() => {
const mediaSession = navigator.mediaSession;
if (!mediaSession) return;
const now = navigation?.playing;
const poster = now?.image || info?.bannerImage;
const title = now?.title || info?.title?.romaji;
const artwork = poster
? [{ src: poster, sizes: "512x512", type: "image/jpeg" }]
: undefined;
mediaSession.metadata = new MediaMetadata({
title: title,
artist: `Moopa ${
title === info?.title?.romaji
? "- Episode " + epiNumber
: `- ${info?.title?.romaji || info?.title?.english}`
}`,
artwork,
});
}, [navigation, info, epiNumber]);
function handleOpen() {
setOpen(true);
document.body.style.overflow = "hidden";
}
function handleClose() {
setOpen(false);
document.body.style.overflow = "auto";
}
return (
<>
Edit your list
Video is not available, please try other providers
) ) : (