From 3fc114bc6bb502e9c120fae8dadad0c6698e9d18 Mon Sep 17 00:00:00 2001 From: DIYgod Date: Fri, 28 Jul 2023 16:43:22 +0100 Subject: [PATCH] feat: skip skipExpansion for archives and tags long list --- src/app/api/pages/route.ts | 1 + src/app/site/[site]/archives/page.tsx | 1 + src/app/site/[site]/tag/[tag]/page.tsx | 1 + src/components/site/SiteArchives.tsx | 3 ++- src/models/page.model.ts | 15 +++++++++------ 5 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/app/api/pages/route.ts b/src/app/api/pages/route.ts index e1041456..56f577f9 100644 --- a/src/app/api/pages/route.ts +++ b/src/app/api/pages/route.ts @@ -12,6 +12,7 @@ export async function GET(req: Request) { limit: query.limit ? parseInt(query.limit as string) : undefined, cursor: query.cursor as string, useStat: true, + skipExpansion: query.skipExpansion === "true", ...(query.tags && { tags: Array.isArray(query.tags) ? (query.tags as string[]) diff --git a/src/app/site/[site]/archives/page.tsx b/src/app/site/[site]/archives/page.tsx index eb95025c..b65b837a 100644 --- a/src/app/site/[site]/archives/page.tsx +++ b/src/app/site/[site]/archives/page.tsx @@ -42,6 +42,7 @@ export default async function SiteArchivesPage({ type: "post", visibility: PageVisibilityEnum.Published, limit: 100, + skipExpansion: true, }, queryClient, ) diff --git a/src/app/site/[site]/tag/[tag]/page.tsx b/src/app/site/[site]/tag/[tag]/page.tsx index 98a6e308..cb692d87 100644 --- a/src/app/site/[site]/tag/[tag]/page.tsx +++ b/src/app/site/[site]/tag/[tag]/page.tsx @@ -48,6 +48,7 @@ export default async function SiteTagPage({ type: "post", visibility: PageVisibilityEnum.Published, limit: 100, + skipExpansion: true, tags: [params.tag], }, queryClient, diff --git a/src/components/site/SiteArchives.tsx b/src/components/site/SiteArchives.tsx index eed977d9..0c367a61 100644 --- a/src/components/site/SiteArchives.tsx +++ b/src/components/site/SiteArchives.tsx @@ -29,9 +29,10 @@ export const SiteArchives = () => { const site = useGetSite(params?.site as string) const posts = useGetPagesBySiteLite({ characterId: site.data?.characterId, - limit: 100, type: "post", visibility: PageVisibilityEnum.Published, + limit: 100, + skipExpansion: true, ...(params?.tag && { tags: [params.tag as string] }), }) diff --git a/src/models/page.model.ts b/src/models/page.model.ts index 395f7a28..addfdc05 100644 --- a/src/models/page.model.ts +++ b/src/models/page.model.ts @@ -143,6 +143,7 @@ export async function getPagesBySite(input: { useHTML?: boolean keepBody?: boolean handle?: string // In order to be compatible with old drafts + skipExpansion?: boolean }) { if (!input.characterId) { return { @@ -185,12 +186,14 @@ export async function getPagesBySite(input: { pinnedNoteId: pinnedNote?.noteId, list: await Promise.all( list.map(async (note) => { - const expanded = await expandCrossbellNote({ - note, - useStat: input.useStat, - useHTML: input.useHTML, - useScore: false, - }) + const expanded = input.skipExpansion + ? (note as ExpandedNote) + : await expandCrossbellNote({ + note, + useStat: input.useStat, + useHTML: input.useHTML, + useScore: false, + }) if (!input.keepBody) { delete expanded.metadata?.content?.content