diff --git a/packages/api/src/resolvers/article/index.ts b/packages/api/src/resolvers/article/index.ts index 71b372a0f..e1337f7e8 100644 --- a/packages/api/src/resolvers/article/index.ts +++ b/packages/api/src/resolvers/article/index.ts @@ -707,9 +707,9 @@ export const saveArticleReadingProgressResolver = authorized< { input: { id, readingProgressPercent, readingProgressAnchorIndex } }, { claims: { uid }, pubsub } ) => { - const userArticleRecord = await getPageByParam({ userId: uid, _id: id }) + const page = await getPageByParam({ userId: uid, _id: id }) - if (!userArticleRecord) { + if (!page) { return { errorCodes: [SaveArticleReadingProgressErrorCode.NotFound] } } @@ -725,26 +725,25 @@ export const saveArticleReadingProgressResolver = authorized< // be greater than the current reading progress. const shouldUpdate = readingProgressPercent === 0 || - (userArticleRecord.readingProgressPercent || 0) < - readingProgressPercent || - (userArticleRecord.readingProgressAnchorIndex || 0) < - readingProgressAnchorIndex + page.readingProgressPercent < readingProgressPercent || + page.readingProgressAnchorIndex < readingProgressAnchorIndex - const updatedArticle = Object.assign(userArticleRecord, { + const updatedPart = { readingProgressPercent: shouldUpdate ? readingProgressPercent - : userArticleRecord.readingProgressPercent, + : page.readingProgressPercent, readingProgressAnchorIndex: shouldUpdate ? readingProgressAnchorIndex - : userArticleRecord.readingProgressAnchorIndex, - }) + : page.readingProgressAnchorIndex, + } - shouldUpdate && (await updatePage(id, updatedArticle, { pubsub, uid })) + shouldUpdate && (await updatePage(id, updatedPart, { pubsub, uid })) return { updatedArticle: { - ...updatedArticle, - isArchived: !!updatedArticle.archivedAt, + ...page, + ...updatedPart, + isArchived: !!page.archivedAt, }, } }