diff --git a/src/components/Doc.tsx b/src/components/Doc.tsx index a58a2df54..721ed4663 100644 --- a/src/components/Doc.tsx +++ b/src/components/Doc.tsx @@ -141,15 +141,17 @@ export function Doc({ return (
- + {pagePath ? ( + + ) : null}
LibraryChartsCatalogRoute, } as any) +const LibraryMarkdownVersionReportsSizesRoute = + LibraryMarkdownVersionReportsSizesRouteImport.update({ + id: '/markdown/$version/reports/sizes', + path: '/markdown/$version/reports/sizes', + getParentRoute: () => LibraryRoute, + } as any) const ApiAuthCliStatusTicketIdRoute = ApiAuthCliStatusTicketIdRouteImport.update({ id: '/api/auth/cli/status/$ticketId', @@ -2266,6 +2273,7 @@ export interface FileRoutesByFullPath { '/$libraryId/$version/docs/{$}.md': typeof LibraryLibraryIdVersionDocsChar123Char125DotmdRoute '/charts/catalog/charts/$caseId': typeof LibraryChartsCatalogChartsCaseIdRoute '/charts/catalog/collections/$collectionId': typeof LibraryChartsCatalogCollectionsCollectionIdRoute + '/markdown/$version/reports/sizes': typeof LibraryMarkdownVersionReportsSizesRoute '/api/auth/cli/status/$ticketId': typeof ApiAuthCliStatusTicketIdRoute '/api/chat/bot-drafts/$id/files': typeof ApiChatBotDraftsIdFilesRouteWithChildren '/api/chat/bots/$id/$operation': typeof ApiChatBotsIdOperationRoute @@ -2569,6 +2577,7 @@ export interface FileRoutesByTo { '/$libraryId/$version/docs/{$}.md': typeof LibraryLibraryIdVersionDocsChar123Char125DotmdRoute '/charts/catalog/charts/$caseId': typeof LibraryChartsCatalogChartsCaseIdRoute '/charts/catalog/collections/$collectionId': typeof LibraryChartsCatalogCollectionsCollectionIdRoute + '/markdown/$version/reports/sizes': typeof LibraryMarkdownVersionReportsSizesRoute '/api/auth/cli/status/$ticketId': typeof ApiAuthCliStatusTicketIdRoute '/api/chat/bot-drafts/$id/files': typeof ApiChatBotDraftsIdFilesRouteWithChildren '/api/chat/bots/$id/$operation': typeof ApiChatBotsIdOperationRoute @@ -2887,6 +2896,7 @@ export interface FileRoutesById { '/_library/$libraryId/$version/docs/{$}.md': typeof LibraryLibraryIdVersionDocsChar123Char125DotmdRoute '/_library/charts/catalog/charts/$caseId': typeof LibraryChartsCatalogChartsCaseIdRoute '/_library/charts/catalog/collections/$collectionId': typeof LibraryChartsCatalogCollectionsCollectionIdRoute + '/_library/markdown/$version/reports/sizes': typeof LibraryMarkdownVersionReportsSizesRoute '/api/auth/cli/status/$ticketId': typeof ApiAuthCliStatusTicketIdRoute '/api/chat/bot-drafts/$id/files': typeof ApiChatBotDraftsIdFilesRouteWithChildren '/api/chat/bots/$id/$operation': typeof ApiChatBotsIdOperationRoute @@ -3205,6 +3215,7 @@ export interface FileRouteTypes { | '/$libraryId/$version/docs/{$}.md' | '/charts/catalog/charts/$caseId' | '/charts/catalog/collections/$collectionId' + | '/markdown/$version/reports/sizes' | '/api/auth/cli/status/$ticketId' | '/api/chat/bot-drafts/$id/files' | '/api/chat/bots/$id/$operation' @@ -3508,6 +3519,7 @@ export interface FileRouteTypes { | '/$libraryId/$version/docs/{$}.md' | '/charts/catalog/charts/$caseId' | '/charts/catalog/collections/$collectionId' + | '/markdown/$version/reports/sizes' | '/api/auth/cli/status/$ticketId' | '/api/chat/bot-drafts/$id/files' | '/api/chat/bots/$id/$operation' @@ -3825,6 +3837,7 @@ export interface FileRouteTypes { | '/_library/$libraryId/$version/docs/{$}.md' | '/_library/charts/catalog/charts/$caseId' | '/_library/charts/catalog/collections/$collectionId' + | '/_library/markdown/$version/reports/sizes' | '/api/auth/cli/status/$ticketId' | '/api/chat/bot-drafts/$id/files' | '/api/chat/bots/$id/$operation' @@ -5868,6 +5881,13 @@ declare module '@tanstack/react-router' { preLoaderRoute: typeof LibraryChartsCatalogCollectionsCollectionIdRouteImport parentRoute: typeof LibraryChartsCatalogRoute } + '/_library/markdown/$version/reports/sizes': { + id: '/_library/markdown/$version/reports/sizes' + path: '/markdown/$version/reports/sizes' + fullPath: '/markdown/$version/reports/sizes' + preLoaderRoute: typeof LibraryMarkdownVersionReportsSizesRouteImport + parentRoute: typeof LibraryRoute + } '/api/auth/cli/status/$ticketId': { id: '/api/auth/cli/status/$ticketId' path: '/api/auth/cli/status/$ticketId' @@ -6422,6 +6442,7 @@ interface LibraryRouteChildren { LibraryTableVersionIndexRoute: typeof LibraryTableVersionIndexRoute LibraryVirtualVersionIndexRoute: typeof LibraryVirtualVersionIndexRoute LibraryWorkflowVersionIndexRoute: typeof LibraryWorkflowVersionIndexRoute + LibraryMarkdownVersionReportsSizesRoute: typeof LibraryMarkdownVersionReportsSizesRoute } const LibraryRouteChildren: LibraryRouteChildren = { @@ -6447,6 +6468,8 @@ const LibraryRouteChildren: LibraryRouteChildren = { LibraryTableVersionIndexRoute: LibraryTableVersionIndexRoute, LibraryVirtualVersionIndexRoute: LibraryVirtualVersionIndexRoute, LibraryWorkflowVersionIndexRoute: LibraryWorkflowVersionIndexRoute, + LibraryMarkdownVersionReportsSizesRoute: + LibraryMarkdownVersionReportsSizesRoute, } const LibraryRouteWithChildren = diff --git a/src/routes/_library/markdown.$version.reports.sizes.tsx b/src/routes/_library/markdown.$version.reports.sizes.tsx new file mode 100644 index 000000000..2cbdcdcb4 --- /dev/null +++ b/src/routes/_library/markdown.$version.reports.sizes.tsx @@ -0,0 +1,73 @@ +import { createFileRoute } from '@tanstack/react-router' +import { Doc } from '~/components/Doc' +import { DocContainer } from '~/components/DocContainer' +import { getBranch, getLibrary } from '~/libraries' +import { docsConfigQueryOptions } from '~/queries/docsConfig' +import { getDocsCacheHeaders } from '~/utils/docs-cache-headers' +import { fetchDocs } from '~/utils/docs.functions' +import { ogImageUrl } from '~/utils/og' +import { seo } from '~/utils/seo' +import { beforeLoadLibraryLanding } from '../-library-landing-route' + +const library = getLibrary('markdown') +const filePath = 'reports/sizes.md' + +export const Route = createFileRoute( + '/_library/markdown/$version/reports/sizes', +)({ + staleTime: 1000 * 60 * 5, + beforeLoad: ({ params, location }) => { + beforeLoadLibraryLanding('markdown', params.version, location.href) + }, + loader: async ({ params, context: { queryClient } }) => { + const branch = getBranch(library, params.version) + const [config, report] = await Promise.all([ + queryClient.ensureQueryData( + docsConfigQueryOptions('markdown', params.version), + ), + fetchDocs({ + data: { + repo: library.repo, + branch, + filePath, + }, + }), + ]) + + return { + ...report, + branch, + config, + } + }, + head: ({ loaderData }) => ({ + meta: seo({ + title: `Bundle Size Results | ${library.name}`, + description: loaderData?.description, + image: ogImageUrl(library.id), + noindex: library.visible === false, + }), + }), + headers: ({ params }) => + getDocsCacheHeaders({ libraryId: library.id, version: params.version }), + component: MarkdownBundleSizeReport, +}) + +function MarkdownBundleSizeReport() { + const { branch, content } = Route.useLoaderData() + + return ( + + + + ) +} diff --git a/tests/docs-route-smoke.test.ts b/tests/docs-route-smoke.test.ts index 6ddaaf668..aa50c6366 100644 --- a/tests/docs-route-smoke.test.ts +++ b/tests/docs-route-smoke.test.ts @@ -95,6 +95,11 @@ test( return paths }) + cases.push({ + path: '/markdown/latest/reports/sizes', + expected: 'ok', + }) + for (const smokeCase of cases) { const result = await fetchWithRedirects(new URL(smokeCase.path, baseUrl))