From b365d89a11adf40d37b78292f121b890e960d0e8 Mon Sep 17 00:00:00 2001 From: Factiven Date: Thu, 13 Apr 2023 16:03:57 +0700 Subject: update 2nd --- pages/anime/[...id].js | 38 +++++++----- pages/anime/watch/[...info].js | 131 +++++++++++++++++++++++++++++++++++++---- 2 files changed, 143 insertions(+), 26 deletions(-) (limited to 'pages/anime') diff --git a/pages/anime/[...id].js b/pages/anime/[...id].js index d42a394..c2e69e1 100644 --- a/pages/anime/[...id].js +++ b/pages/anime/[...id].js @@ -75,7 +75,9 @@ export default function Himitsu({ if (!Array.isArray(existingData)) { existingData = []; } - const index = existingData.findIndex((item) => item.title === props.title); + const index = existingData.findIndex( + (item) => item.title.romaji === props.title.romaji + ); if (index !== -1) { existingData.splice(index, 1); } @@ -176,13 +178,17 @@ export default function Himitsu({ href={`/anime/watch/${epi1[0].id}/${info.id}`} onClick={() => handleStore({ - title: - info.title?.english || - info.title.romaji || - info.title.native, + title: { + romaji: + info.title.romaji || + info.title.english || + info.title.native, + }, description: info.description, - image: info.image, - id: info.id, + coverImage: { + extraLarge: info.image, + }, + id: parseInt(info.id), }) } > @@ -358,7 +364,7 @@ export default function Himitsu({ className="object-cover h-full w-full shrink-0 rounded-l-md" /> -
+
{relation.relationType}
@@ -415,13 +421,17 @@ export default function Himitsu({ handleStore({ - title: - info.title?.english || - info.title.romaji || - info.title.native, + title: { + romaji: + info.title.romaji || + info.title.english || + info.title.native, + }, description: info.description, - image: info.image, - id: info.id, + coverImage: { + extraLarge: info.image, + }, + id: parseInt(info.id), }) } href={`/anime/watch/${episode.id}/${info.id}/${ diff --git a/pages/anime/watch/[...info].js b/pages/anime/watch/[...info].js index 73e04f5..ed1a50b 100644 --- a/pages/anime/watch/[...info].js +++ b/pages/anime/watch/[...info].js @@ -9,17 +9,59 @@ import Head from "next/head"; import { useEffect, useState } from "react"; import Modal from "../../../components/modal"; +import { useNotification } from "../../../lib/useNotify"; + +import { useSession, signIn, signOut } from "next-auth/react"; +import AniList from "../../../components/media/aniList"; + +import { AnimatePresence, motion as m } from "framer-motion"; +import Navbar from "../../../components/navbar"; +import { Navigasi } from "../.."; + export default function Info({ info }) { + const { data: session, status } = useSession(); const title = info.aniData.title.romaji || info.aniData.title.english; const data = info.aniData; const fallback = info.epiFallback; + const { Notification: NotificationComponent, show } = useNotification(); + + // console.log(session); + + const playingEpisode = data.episodes + .filter((item) => item.id == info.id) + .map((item) => item.number); const [open, setOpen] = useState(false); + const [aniStatus, setAniStatus] = useState(""); + const [aniProgress, setAniProgress] = useState(parseInt(playingEpisode)); + + const handleStatus = (e) => { + setAniStatus(e.target.value); + }; + + const handleProgress = (e) => { + const value = parseFloat(e.target.value); + if (!isNaN(value) && value >= 0 && value <= data.totalEpisodes) { + setAniProgress(value); + } + }; + + const handleSubmit = (e) => { + e.preventDefault(); + const formData = { status: aniStatus, progress: aniProgress }; + console.log(formData); + }; const playingTitle = data.episodes .filter((item) => item.id == info.id) .map((item) => item.title); + if (status === "loading") { + return

Loading...

; + } + + console.log(parseInt(playingEpisode)); + return ( <> @@ -27,29 +69,91 @@ export default function Info({ info }) { {fallback ? data.title.romaji || data.title.english : playingTitle} + + + setOpen(false)}> -
+

Save this Anime to Your List

-

- Are you sure you want to save this anime to your list? -

-
- + {!session && ( -
+ )} + {session && ( + <> +
+
+ + +
+
+ + +
+
+ +
+
+ + )}
+
@@ -59,6 +163,9 @@ export default function Info({ info }) { seek={info.seek} titles={title} id={info.id} + progress={parseInt(playingEpisode)} + session={session} + aniId={parseInt(data.id)} />
-- cgit v1.2.3