From 03fbf8e98fbec90d1a9bcb2beb1a2571a4415a98 Mon Sep 17 00:00:00 2001 From: Benjamin Cabanes <3447705+bcabanes@users.noreply.github.com> Date: Mon, 24 Oct 2022 16:49:37 -0400 Subject: [PATCH] docs(nxdev): optimize view model for package view (#12795) --- .../src/lib/package-schema-list.tsx | 40 ++++++++++++------- .../src/lib/ui/package-reference.tsx | 2 +- .../models-package/src/lib/package.models.ts | 2 +- 3 files changed, 27 insertions(+), 17 deletions(-) diff --git a/nx-dev/feature-package-schema-viewer/src/lib/package-schema-list.tsx b/nx-dev/feature-package-schema-viewer/src/lib/package-schema-list.tsx index 7ccc9120734cc..c0461d2b48e0b 100644 --- a/nx-dev/feature-package-schema-viewer/src/lib/package-schema-list.tsx +++ b/nx-dev/feature-package-schema-viewer/src/lib/package-schema-list.tsx @@ -1,5 +1,5 @@ -import { Menu } from '@nrwl/nx-dev/models-menu'; -import { PackageMetadata } from '@nrwl/nx-dev/models-package'; +import { Menu, MenuItem, MenuSection } from '@nrwl/nx-dev/models-menu'; +import { PackageMetadata, SchemaMetadata } from '@nrwl/nx-dev/models-package'; import { Breadcrumbs, Footer } from '@nrwl/nx-dev/ui-common'; import { renderMarkdown } from '@nrwl/nx-dev/ui-markdoc'; import { NextSeo } from 'next-seo'; @@ -18,18 +18,27 @@ export function PackageSchemaList({ }): JSX.Element { const router = useRouter(); + function getGuides(id: string, sections: MenuSection[]): MenuItem | null { + const target = sections.find((x) => x.id === id); + if (!target) return null; + return target.itemList.find((y) => y.id === id + '-guides') || null; + } + const vm: { - pkg: { + package: { name: string; description: string; githubUrl: string; id: string; readme: { content: string; filePath: string }; + guides: MenuItem | null; + executors: SchemaMetadata[]; + generators: SchemaMetadata[]; }; seo: { title: string; description: string; url: string; imageUrl: string }; markdown: ReactNode; } = { - pkg: { + package: { name: pkg.packageName, description: pkg.description, githubUrl: pkg.githubRoot + pkg.root, @@ -43,6 +52,9 @@ export function PackageSchemaList({ } : { content: '', filePath: '' }; }, + guides: getGuides(pkg.name, menu.sections), + executors: pkg.executors, + generators: pkg.generators, }, seo: { title: `${pkg.packageName} | Nx`, @@ -54,8 +66,8 @@ export function PackageSchemaList({ }, get markdown(): ReactNode { return renderMarkdown({ - content: this.pkg.readme.content || this.pkg.description, - filePath: this.pkg.readme.filePath, + content: this.package.readme.content || this.package.description, + filePath: this.package.readme.filePath, data: {}, }); }, @@ -99,7 +111,7 @@ export function PackageSchemaList({
- +
{vm.markdown}
x.id === vm.pkg.id) - ?.itemList.find((y) => y.id === vm.pkg.id + '-guides')} - executors={pkg.executors} - generators={pkg.generators} + name={vm.package.id} + guides={vm.package.guides} + executors={vm.package.executors} + generators={vm.package.generators} /> diff --git a/nx-dev/feature-package-schema-viewer/src/lib/ui/package-reference.tsx b/nx-dev/feature-package-schema-viewer/src/lib/ui/package-reference.tsx index dd41e34509d48..dfd48093242a7 100644 --- a/nx-dev/feature-package-schema-viewer/src/lib/ui/package-reference.tsx +++ b/nx-dev/feature-package-schema-viewer/src/lib/ui/package-reference.tsx @@ -19,7 +19,7 @@ export function PackageReference({ }: { executors: SchemaMetadata[]; generators: SchemaMetadata[]; - guides: MenuItem; + guides: MenuItem | null; name: string; }): JSX.Element { return ( diff --git a/nx-dev/models-package/src/lib/package.models.ts b/nx-dev/models-package/src/lib/package.models.ts index ab5844dd752e2..64f32b305106f 100644 --- a/nx-dev/models-package/src/lib/package.models.ts +++ b/nx-dev/models-package/src/lib/package.models.ts @@ -18,8 +18,8 @@ export interface PackageMetadata { }[]; root: string; source: string; - generators: SchemaMetadata[]; executors: SchemaMetadata[]; + generators: SchemaMetadata[]; } export interface SchemaMetadata {