From 887d51f470829be43e4577c71d184d465fdcf9ad Mon Sep 17 00:00:00 2001 From: DIYgod Date: Thu, 17 Nov 2022 22:51:04 +0000 Subject: [PATCH] feat: lazy load markdown module --- src/components/site/SiteLayout.server.tsx | 1 - src/components/site/SiteLayout.tsx | 1 - src/models/page.model.ts | 25 ++++++++++------------ src/pages/_site/[site]/[page].tsx | 1 - src/pages/_site/[site]/preview/[page].tsx | 1 - src/pages/dashboard/[subdomain]/editor.tsx | 1 - 6 files changed, 11 insertions(+), 19 deletions(-) diff --git a/src/components/site/SiteLayout.server.tsx b/src/components/site/SiteLayout.server.tsx index 2ed3fa08..ba22cba0 100644 --- a/src/components/site/SiteLayout.server.tsx +++ b/src/components/site/SiteLayout.server.tsx @@ -41,7 +41,6 @@ export const getServerSideProps = async ( { site: domainOrSubdomain, page: pageSlug, - render: true, }, queryClient, ) diff --git a/src/components/site/SiteLayout.tsx b/src/components/site/SiteLayout.tsx index cd0db92f..c058a62b 100644 --- a/src/components/site/SiteLayout.tsx +++ b/src/components/site/SiteLayout.tsx @@ -29,7 +29,6 @@ export const SiteLayout: React.FC = ({ const page = useGetPage({ site: domainOrSubdomain, page: pageSlug, - render: true, }) const site = useGetSite(domainOrSubdomain) diff --git a/src/models/page.model.ts b/src/models/page.model.ts index 9c111a76..a531c9f7 100644 --- a/src/models/page.model.ts +++ b/src/models/page.model.ts @@ -1,4 +1,3 @@ -import { Rendered, renderPageContent } from "~/markdown" import { notFound } from "~/lib/server-side-props" import { PageVisibilityEnum, Notes, Note } from "~/lib/types" import unidata from "~/queries/unidata.server" @@ -118,12 +117,9 @@ export async function createOrUpdatePage( ) } -const expandPage = (page: Note, render: boolean) => { - if ( - page.body?.content && - page.body?.mime_type === "text/markdown" && - render - ) { +const expandPage = async (page: Note) => { + if (page.body?.content && page.body?.mime_type === "text/markdown") { + const { renderPageContent } = await import("~/markdown") const rendered = renderPageContent(page.body.content, true) page.body = { content: page.body.content, @@ -280,11 +276,13 @@ export async function getPagesBySite( ) pages.total = pages.total - ((input.take || 10) - pages.list.length) - pages?.list.map((page) => { - expandPage(page, true) - delete page.body - return page - }) + await Promise.all( + pages?.list.map(async (page) => { + await expandPage(page) + delete page.body + return page + }), + ) } return pages @@ -296,7 +294,6 @@ export async function getPage( page?: string pageId?: string site?: string - render?: TRender }, customUnidata?: Unidata, ) { @@ -357,7 +354,7 @@ export async function getPage( } if (page) { - expandPage(page, input.render || false) + await expandPage(page) } return page diff --git a/src/pages/_site/[site]/[page].tsx b/src/pages/_site/[site]/[page].tsx index 7d6417c3..d6d0ca9d 100644 --- a/src/pages/_site/[site]/[page].tsx +++ b/src/pages/_site/[site]/[page].tsx @@ -35,7 +35,6 @@ function SitePagePage({ const page = useGetPage({ site: domainOrSubdomain, page: pageSlug, - render: true, }) return diff --git a/src/pages/_site/[site]/preview/[page].tsx b/src/pages/_site/[site]/preview/[page].tsx index bc9b22f3..2133c3eb 100644 --- a/src/pages/_site/[site]/preview/[page].tsx +++ b/src/pages/_site/[site]/preview/[page].tsx @@ -12,7 +12,6 @@ function SitePagePage() { const page = useGetPage({ site: site, page: pageSlug, - render: true, }) return diff --git a/src/pages/dashboard/[subdomain]/editor.tsx b/src/pages/dashboard/[subdomain]/editor.tsx index 0802c07a..4e2dcda1 100644 --- a/src/pages/dashboard/[subdomain]/editor.tsx +++ b/src/pages/dashboard/[subdomain]/editor.tsx @@ -71,7 +71,6 @@ export default function SubdomainEditor() { const page = useGetPage({ site: subdomain!, pageId: pageId || draftKey.replace(`draft-${subdomain}-`, ""), - render: false, }) const [visibility, setVisibility] = useState()