Trigger track progress on last page read of chapter (#690)
This commit is contained in:
@@ -227,11 +227,9 @@ export const FULL_TRACKER_FIELDS = gql`
|
||||
}
|
||||
`;
|
||||
|
||||
export const FULL_TRACK_RECORD_FIELDS = gql`
|
||||
${FULL_TRACKER_FIELDS}
|
||||
fragment FULL_TRACK_RECORD_FIELDS on TrackRecordType {
|
||||
export const BASE_TRACK_RECORD_FIELDS = gql`
|
||||
fragment BASE_TRACK_RECORD_FIELDS on TrackRecordType {
|
||||
id
|
||||
title
|
||||
status
|
||||
lastChapterRead
|
||||
totalChapters
|
||||
@@ -239,8 +237,24 @@ export const FULL_TRACK_RECORD_FIELDS = gql`
|
||||
displayScore
|
||||
startDate
|
||||
finishDate
|
||||
}
|
||||
`;
|
||||
|
||||
export const QUERY_TRACK_RECORD_FIELDS = gql`
|
||||
${BASE_TRACK_RECORD_FIELDS}
|
||||
fragment QUERY_TRACK_RECORD_FIELDS on TrackRecordType {
|
||||
...BASE_TRACK_RECORD_FIELDS
|
||||
title
|
||||
remoteUrl
|
||||
remoteId
|
||||
}
|
||||
`;
|
||||
|
||||
export const FULL_TRACK_RECORD_FIELDS = gql`
|
||||
${QUERY_TRACK_RECORD_FIELDS}
|
||||
${FULL_TRACKER_FIELDS}
|
||||
fragment FULL_TRACK_RECORD_FIELDS on TrackRecordType {
|
||||
...QUERY_TRACK_RECORD_FIELDS
|
||||
tracker {
|
||||
...FULL_TRACKER_FIELDS
|
||||
}
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -7,7 +7,7 @@
|
||||
*/
|
||||
|
||||
import gql from 'graphql-tag';
|
||||
import { FULL_CHAPTER_FIELDS } from '@/lib/graphql/Fragments';
|
||||
import { BASE_TRACK_RECORD_FIELDS, FULL_CHAPTER_FIELDS } from '@/lib/graphql/Fragments';
|
||||
|
||||
export const DELETE_CHAPTER_METADATA = gql`
|
||||
mutation DELETE_CHAPTER_METADATA($input: DeleteChapterMetaInput!) {
|
||||
@@ -88,6 +88,7 @@ export const SET_CHAPTER_METADATA = gql`
|
||||
`;
|
||||
|
||||
export const UPDATE_CHAPTER = gql`
|
||||
${BASE_TRACK_RECORD_FIELDS}
|
||||
mutation UPDATE_CHAPTER(
|
||||
$input: UpdateChapterInput!
|
||||
$getBookmarked: Boolean!
|
||||
@@ -95,6 +96,8 @@ export const UPDATE_CHAPTER = gql`
|
||||
$getLastPageRead: Boolean!
|
||||
$chapterIdToDelete: Int!
|
||||
$deleteChapter: Boolean!
|
||||
$mangaId: Int!
|
||||
$trackProgress: Boolean!
|
||||
) {
|
||||
updateChapter(input: $input) {
|
||||
clientMutationId
|
||||
@@ -134,6 +137,11 @@ export const UPDATE_CHAPTER = gql`
|
||||
}
|
||||
}
|
||||
}
|
||||
trackProgress(input: { mangaId: $mangaId }) @include(if: $trackProgress) {
|
||||
trackRecords {
|
||||
...BASE_TRACK_RECORD_FIELDS
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
|
||||
@@ -7,6 +7,7 @@
|
||||
*/
|
||||
|
||||
import gql from 'graphql-tag';
|
||||
import { BASE_TRACK_RECORD_FIELDS, QUERY_TRACK_RECORD_FIELDS } from '@/lib/graphql/Fragments.ts';
|
||||
|
||||
export const TRACKER_LOGIN_OAUTH = gql`
|
||||
mutation TRACKER_LOGIN_OAUTH($input: LoginTrackerOAuthInput!) {
|
||||
@@ -47,20 +48,11 @@ export const TRACKER_LOGOUT = gql`
|
||||
`;
|
||||
|
||||
export const TRACKER_BIND = gql`
|
||||
${QUERY_TRACK_RECORD_FIELDS}
|
||||
mutation TRACKER_BIND($mangaId: Int!, $remoteId: LongString!, $trackerId: Int!) {
|
||||
bindTrack(input: { mangaId: $mangaId, remoteId: $remoteId, trackerId: $trackerId }) {
|
||||
trackRecord {
|
||||
id
|
||||
title
|
||||
status
|
||||
lastChapterRead
|
||||
totalChapters
|
||||
score
|
||||
displayScore
|
||||
startDate
|
||||
finishDate
|
||||
remoteUrl
|
||||
remoteId
|
||||
...QUERY_TRACK_RECORD_FIELDS
|
||||
tracker {
|
||||
id
|
||||
}
|
||||
@@ -98,23 +90,11 @@ export const TRACKER_UNBIND = gql`
|
||||
`;
|
||||
|
||||
export const TRACKER_UPDATE_BIND = gql`
|
||||
${QUERY_TRACK_RECORD_FIELDS}
|
||||
mutation TRACKER_UPDATE_BIND($input: UpdateTrackInput!) {
|
||||
updateTrack(input: $input) {
|
||||
trackRecord {
|
||||
id
|
||||
title
|
||||
status
|
||||
lastChapterRead
|
||||
totalChapters
|
||||
score
|
||||
displayScore
|
||||
startDate
|
||||
finishDate
|
||||
remoteUrl
|
||||
remoteId
|
||||
tracker {
|
||||
id
|
||||
}
|
||||
...QUERY_TRACK_RECORD_FIELDS
|
||||
manga {
|
||||
id
|
||||
trackRecords {
|
||||
@@ -128,3 +108,14 @@ export const TRACKER_UPDATE_BIND = gql`
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
export const TRACKER_TRACK_PROGRESS = gql`
|
||||
${BASE_TRACK_RECORD_FIELDS}
|
||||
mutation TRACKER_TRACK_PROGRESS($mangaId: Int!) {
|
||||
trackProgress(input: { mangaId: $mangaId }) {
|
||||
trackRecords {
|
||||
...BASE_TRACK_RECORD_FIELDS
|
||||
}
|
||||
}
|
||||
}
|
||||
`;
|
||||
|
||||
@@ -1887,10 +1887,11 @@ export class RequestManager {
|
||||
id: number,
|
||||
patch: UpdateChapterPatchInput & {
|
||||
chapterIdToDelete?: number;
|
||||
trackProgressMangaId?: number;
|
||||
},
|
||||
options?: MutationOptions<UpdateChapterMutation, UpdateChapterMutationVariables>,
|
||||
): AbortableApolloMutationResponse<UpdateChapterMutation> {
|
||||
const { chapterIdToDelete = -1, ...updatePatch } = patch;
|
||||
const { chapterIdToDelete = -1, trackProgressMangaId = -1, ...updatePatch } = patch;
|
||||
|
||||
return this.doRequest<UpdateChapterMutation, UpdateChapterMutationVariables>(
|
||||
GQLMethod.MUTATION,
|
||||
@@ -1902,6 +1903,8 @@ export class RequestManager {
|
||||
getLastPageRead: patch.lastPageRead != null,
|
||||
chapterIdToDelete,
|
||||
deleteChapter: chapterIdToDelete >= 0,
|
||||
mangaId: trackProgressMangaId,
|
||||
trackProgress: trackProgressMangaId >= 0,
|
||||
},
|
||||
options,
|
||||
);
|
||||
|
||||
@@ -253,6 +253,7 @@ export function Reader() {
|
||||
.updateChapter(chapter.id, {
|
||||
...patch,
|
||||
chapterIdToDelete: getChapterIdToDelete(),
|
||||
trackProgressMangaId: manga.trackRecords.totalCount ? manga.id : undefined,
|
||||
})
|
||||
.response.catch();
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user