Просмотр исходного кода

Infinite scroll fix

https://youtrack.weseek.co.jp/issue/GW-7756
- Remove page query in pages api route
- Modify offset option
- Replace page query with offset in useSWRInifinitexRecentlyUpdated
I Komang Mudana 4 лет назад
Родитель
Сommit
2782683f69

+ 1 - 5
packages/app/src/server/models/obsolete-page.js

@@ -514,14 +514,10 @@ export const getPageSchema = (crowi) => {
     }
 
     // Pagination for infinite scroll
-    // Paginate with mongoose paginate v2 & `page` exists is in options
-    const skip = opt.page ? (+opt.page - 1) * opt.limit : opt.offset;
-
     const paginationOptions = {
       lean: true,
       limit: opt.limit,
-      offset: skip,
-      page: opt.page,
+      offset: opt.offset,
       sort: sortOpt,
     };
     const paginatedPages = await Page.paginate(builder.query.clone(), paginationOptions);

+ 2 - 4
packages/app/src/server/routes/apiv3/pages.js

@@ -366,16 +366,14 @@ module.exports = (crowi) => {
   router.get('/recent', accessTokenParser, loginRequired, async(req, res) => {
     const limit = 20;
     const offset = parseInt(req.query.offset) || 0;
-    const page = parseInt(req.query.page) || 1;
-    // const offset = (+page - 1) * limit;
+    const skip = offset > 0 ? (offset - 1) * limit : offset;
     const queryOptions = {
-      offset,
+      offset: skip,
       limit,
       includeTrashed: false,
       isRegExpEscapedFromPath: true,
       sort: 'updatedAt',
       desc: -1,
-      page,
     };
     try {
       const result = await Page.findListWithDescendants('/', req.user, queryOptions);

+ 1 - 1
packages/app/src/stores/page.tsx

@@ -36,7 +36,7 @@ export const useSWRxRecentlyUpdated = (): SWRResponse<(IPageHasId)[], Error> =>
 };
 export const useSWRInifinitexRecentlyUpdated = () : SWRInfiniteResponse<(IPageHasId)[], Error> => {
   const getKey = (page: number) => {
-    return `/pages/recent?page=${page + 1}`;
+    return `/pages/recent?offset=${page + 1}`;
   };
   return useSWRInfinite(
     getKey,