From f1fdd5b0106d3f556afbb1f7a359f2de6fe445fb Mon Sep 17 00:00:00 2001
From: Suneet Tipirneni <77477100+suneettipirneni@users.noreply.github.com>
Date: Mon, 17 Apr 2023 17:33:51 -0400
Subject: [PATCH] refactor(website): extract shared code heading styling into
component (#9414)
* refactor(website): extract shared code heading styling into component
* chore: remove redundant variable
---
apps/website/src/components/CodeHeading.tsx | 28 +++++++++++++++++++
apps/website/src/components/NameText.tsx | 3 --
apps/website/src/components/Property.tsx | 20 ++++---------
.../src/components/model/enum/EnumMember.tsx | 12 ++++----
.../components/model/method/MethodHeader.tsx | 15 ++++------
5 files changed, 45 insertions(+), 33 deletions(-)
create mode 100644 apps/website/src/components/CodeHeading.tsx
delete mode 100644 apps/website/src/components/NameText.tsx
diff --git a/apps/website/src/components/CodeHeading.tsx b/apps/website/src/components/CodeHeading.tsx
new file mode 100644
index 000000000..a7573e4d1
--- /dev/null
+++ b/apps/website/src/components/CodeHeading.tsx
@@ -0,0 +1,28 @@
+import type { ReactNode } from 'react';
+import { Anchor } from './Anchor';
+
+export interface CodeListingProps {
+ /**
+ * The value of this heading.
+ */
+ children: ReactNode;
+ /**
+ * Additional class names to apply to the root element.
+ */
+ className?: string | undefined;
+ /**
+ * The href of this heading.
+ */
+ href?: string | undefined;
+}
+
+export function CodeHeading({ href, className, children }: CodeListingProps) {
+ return (
+
+ {href ?
: null}
+ {children}
+
+ );
+}
diff --git a/apps/website/src/components/NameText.tsx b/apps/website/src/components/NameText.tsx
deleted file mode 100644
index b8b7e4eca..000000000
--- a/apps/website/src/components/NameText.tsx
+++ /dev/null
@@ -1,3 +0,0 @@
-export function NameText({ name }: { name: string }) {
- return {name}
;
-}
diff --git a/apps/website/src/components/Property.tsx b/apps/website/src/components/Property.tsx
index de57b8bbe..a5e9b803c 100644
--- a/apps/website/src/components/Property.tsx
+++ b/apps/website/src/components/Property.tsx
@@ -5,7 +5,7 @@ import type {
ApiPropertySignature,
} from '@microsoft/api-extractor-model';
import type { PropsWithChildren } from 'react';
-import { Anchor } from './Anchor';
+import { CodeHeading } from './CodeHeading';
import { ExcerptText } from './ExcerptText';
import { InheritanceText } from './InheritanceText';
import { TSDoc } from './documentation/tsdoc/TSDoc';
@@ -55,21 +55,13 @@ export function Property({
) : null}
) : null}
-
-
-
- {item.displayName}
- {item.isOptional ? '?' : ''}
-
+
+ {`${item.displayName}${item.isOptional ? '?' : ''}`}
+ {separator}
{item.propertyTypeExcerpt.text ? (
- <>
- {separator}
-
-
-
- >
+
) : null}
-
+
{hasSummary || inheritedFrom ? (
diff --git a/apps/website/src/components/model/enum/EnumMember.tsx b/apps/website/src/components/model/enum/EnumMember.tsx
index d77902f87..9d9afc754 100644
--- a/apps/website/src/components/model/enum/EnumMember.tsx
+++ b/apps/website/src/components/model/enum/EnumMember.tsx
@@ -1,20 +1,18 @@
import type { ApiEnumMember } from '@microsoft/api-extractor-model';
-import { Anchor } from '../../Anchor';
-import { NameText } from '../../NameText';
import { SignatureText } from '../../SignatureText';
import { TSDoc } from '../../documentation/tsdoc/TSDoc';
+import { CodeHeading } from '~/components/CodeHeading';
export function EnumMember({ member }: { member: ApiEnumMember }) {
return (
-
-
-
-
=
+
+ {member.name}
+ =
{member.initializerExcerpt ? (
) : null}
-
+
{member.tsdocComment ?
: null}
);
diff --git a/apps/website/src/components/model/method/MethodHeader.tsx b/apps/website/src/components/model/method/MethodHeader.tsx
index f6531b5fb..0e7fd6077 100644
--- a/apps/website/src/components/model/method/MethodHeader.tsx
+++ b/apps/website/src/components/model/method/MethodHeader.tsx
@@ -1,7 +1,7 @@
import type { ApiMethod, ApiMethodSignature } from '@microsoft/api-extractor-model';
import { ApiItemKind } from '@microsoft/api-extractor-model';
import { useMemo } from 'react';
-import { Anchor } from '~/components/Anchor';
+import { CodeHeading } from '~/components/CodeHeading';
import { ExcerptText } from '~/components/ExcerptText';
import { resolveParameters } from '~/util/model';
@@ -49,14 +49,11 @@ export function MethodHeader({ method }: { method: ApiMethod | ApiMethodSignatur
) : null}
) : null}
-
-
-
{getShorthandName(method)}
-
:
-
-
-
-
+
+ {getShorthandName(method)}
+ :
+
+
);