diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/anilist/useAnilist.js | 53 | ||||
| -rw-r--r-- | lib/context/watchPageProvider.js | 7 |
2 files changed, 44 insertions, 16 deletions
diff --git a/lib/anilist/useAnilist.js b/lib/anilist/useAnilist.js index 323dd29..36c1496 100644 --- a/lib/anilist/useAnilist.js +++ b/lib/anilist/useAnilist.js @@ -4,15 +4,21 @@ export const useAniList = (session) => { const accessToken = session?.user?.token; const fetchGraphQL = async (query, variables) => { - const response = await fetch("https://graphql.anilist.co/", { - method: "POST", - headers: { - "Content-Type": "application/json", - ...(accessToken && { Authorization: `Bearer ${accessToken}` }), - }, - body: JSON.stringify({ query, variables }), - }); - return response.json(); + try { + const response = await fetch("https://graphql.anilist.co/", { + method: "POST", + headers: { + "Content-Type": "application/json", + ...(accessToken && { Authorization: `Bearer ${accessToken}` }), + }, + body: JSON.stringify({ query, variables }), + }); + return response.json(); + } catch (error) { + toast.error("An error occurred, please try again later", { + position: "bottom-right", + }); + } }; const quickSearch = async ({ search, type, isAdult = false }) => { @@ -103,18 +109,22 @@ export const useAniList = (session) => { return data; }; - const markComplete = async (mediaId) => { + const markComplete = async (mediaId, { notes, scoreRaw }) => { if (!accessToken) return; const completeQuery = ` - mutation($mediaId: Int) { - SaveMediaListEntry(mediaId: $mediaId, status: COMPLETED) { + mutation($mediaId: Int, $notes: String, $scoreRaw: Int) { + SaveMediaListEntry(mediaId: $mediaId, status: COMPLETED, scoreRaw: $scoreRaw, notes: $notes) { id mediaId status } } `; - const data = await fetchGraphQL(completeQuery, { mediaId }); + const data = await fetchGraphQL(completeQuery, { + mediaId, + scoreRaw, + notes, + }); console.log({ Complete: data }); }; @@ -162,11 +172,18 @@ export const useAniList = (session) => { return data; }; - const markProgress = async (mediaId, progress, stats, volumeProgress) => { + const markProgress = async ({ + mediaId, + progress, + stats, + volumeProgress, + scoreRaw = 0, + notes, + }) => { if (!accessToken) return; const progressWatched = ` - mutation($mediaId: Int, $progress: Int, $status: MediaListStatus, $progressVolumes: Int, $lists: [String], $repeat: Int) { - SaveMediaListEntry(mediaId: $mediaId, progress: $progress, status: $status, progressVolumes: $progressVolumes, customLists: $lists, repeat: $repeat) { + mutation($mediaId: Int, $progress: Int, $status: MediaListStatus, $progressVolumes: Int, $lists: [String], $repeat: Int, $scoreRaw: Int, $notes: String) { + SaveMediaListEntry(mediaId: $mediaId, progress: $progress, status: $status, progressVolumes: $progressVolumes, customLists: $lists, repeat: $repeat, scoreRaw: $scoreRaw, notes: $notes) { id mediaId progress @@ -214,6 +231,8 @@ export const useAniList = (session) => { status, progressVolumes: volumeProgress, lists, + scoreRaw, + notes, }; if (videoEpisode === mediaEpisode) { @@ -235,6 +254,8 @@ export const useAniList = (session) => { progress, status: stats, progressVolumes: volumeProgress, + scoreRaw, + notes, }; await fetchGraphQL(progressWatched, variables); diff --git a/lib/context/watchPageProvider.js b/lib/context/watchPageProvider.js index c305710..b7d78b3 100644 --- a/lib/context/watchPageProvider.js +++ b/lib/context/watchPageProvider.js @@ -16,6 +16,11 @@ export const WatchPageProvider = ({ children }) => { const [userData, setUserData] = useState(null); const [dataMedia, setDataMedia] = useState(null); + const [ratingModalState, setRatingModalState] = useState({ + isOpen: false, + isFullscreen: false, + }); + const [track, setTrack] = useState(null); return ( @@ -39,6 +44,8 @@ export const WatchPageProvider = ({ children }) => { setDataMedia, autoNext, setAutoNext, + ratingModalState, + setRatingModalState, }} > {children} |