diff options
Diffstat (limited to 'lib/anilist')
| -rw-r--r-- | lib/anilist/getMedia.js | 43 |
1 files changed, 37 insertions, 6 deletions
diff --git a/lib/anilist/getMedia.js b/lib/anilist/getMedia.js index c4628ab..66bb1b0 100644 --- a/lib/anilist/getMedia.js +++ b/lib/anilist/getMedia.js @@ -1,9 +1,10 @@ import { useEffect, useState } from "react"; export default function GetMedia(session, stats) { - const [media, setMedia] = useState([]); + const [anime, setAnime] = useState([]); + const [manga, setManga] = useState([]); const [recommendations, setRecommendations] = useState([]); - const accessToken = session?.user?.token; + const accessToken = session?.user?.token || null; const username = session?.user?.name; const status = stats || null; @@ -12,7 +13,7 @@ export default function GetMedia(session, stats) { method: "POST", headers: { "Content-Type": "application/json", - Authorization: accessToken ? `Bearer ${accessToken}` : undefined, + ...(accessToken && { Authorization: `Bearer ${accessToken}` }), }, body: JSON.stringify({ query, variables }), }); @@ -42,7 +43,36 @@ export default function GetMedia(session, stats) { } } } - MediaListCollection(userName: $username, type: ANIME, status: $status, sort: UPDATED_TIME_DESC) { + anime: MediaListCollection(userName: $username, type: ANIME, status: $status, sort: UPDATED_TIME_DESC) { + lists { + status + name + entries { + id + mediaId + status + progress + score + media { + id + status + nextAiringEpisode { + timeUntilAiring + episode + } + title { + english + romaji + } + episodes + coverImage { + large + } + } + } + } + } + manga: MediaListCollection(userName: $username, type: MANGA, status: $status, sort: UPDATED_TIME_DESC) { lists { status name @@ -79,12 +109,13 @@ export default function GetMedia(session, stats) { status: status?.stats, sort: "ID_DESC", }).then((data) => { - setMedia(data.data.MediaListCollection.lists); + setAnime(data.data.anime?.lists); + setManga(data.data.manga?.lists); setRecommendations( data.data.Page.recommendations.map((i) => i.mediaRecommendation) ); }); }, [username, accessToken, status?.stats]); - return { media, recommendations }; + return { anime, manga, recommendations }; } |