aboutsummaryrefslogtreecommitdiff
path: root/lib/anilist/getMedia.js
diff options
context:
space:
mode:
Diffstat (limited to 'lib/anilist/getMedia.js')
-rw-r--r--lib/anilist/getMedia.js43
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 };
}