From a79b6a703409401a4f3af99c2f102e319b5685e8 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Thu, 15 Sep 2022 23:51:22 +0100 Subject: [PATCH] feat: pages pagination loading --- src/lib/types.ts | 1 + src/models/page.model.ts | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/src/lib/types.ts b/src/lib/types.ts index eb2ce219..0db7beac 100644 --- a/src/lib/types.ts +++ b/src/lib/types.ts @@ -79,6 +79,7 @@ export type Note = UniNote & { export type Notes = { total: number list: Note[] + cursor?: string } export type Profile = UniProfile & { diff --git a/src/models/page.model.ts b/src/models/page.model.ts index 872f3ca9..3cc5267d 100644 --- a/src/models/page.model.ts +++ b/src/models/page.model.ts @@ -199,7 +199,7 @@ export async function getPagesBySite(input: { const visibility = input.visibility || PageVisibilityEnum.All - let pages: Notes = (await unidata.notes.get({ + const options = { source: "Crossbell Note", identity: input.site, platform: "Crossbell", @@ -208,11 +208,26 @@ export async function getPagesBySite(input: { tags: [...(input.tags || []), input.type], applications: ["xlog"], }, - })) || { + cursor: "", + } + + let pages: Notes = { total: 0, list: [], } + let cursor = "" + do { + options.cursor = cursor + const res = (await unidata.notes.get(options)) || { + total: 0, + list: [], + } + pages.total = res.total + pages.list = pages.list.concat(res.list) + cursor = res.cursor + } while (cursor) + const local = getLocalPages({ site: input.site, isPost: input.type === "post",