Skip to content

Commit 0c97ca2

Browse files
committed
Don't assign an undefined document title
- That unexpectedly overrides the parent title - Instead, either provide an explicit fallback or conditionally spread the property (implicit undefined works as expected) - Also, not all addons have a `displayName`; fallback to `name` - Do same for tags and recipes, protectively
1 parent 4252f21 commit 0c97ca2

File tree

5 files changed

+23
-10
lines changed

5 files changed

+23
-10
lines changed

apps/addon-catalog/app/(home)/tag/[...name]/page.tsx

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,15 @@ export const generateMetadata: GenerateMetaData = async ({ params }) => {
3131
const data = (await fetchTagDetailsData(tagName)) || {};
3232

3333
if ('error' in data) return {};
34-
const { displayName } = data;
34+
35+
const title = data.displayName ?? data.name;
3536

3637
return {
37-
title: displayName ? `${displayName} tag | Storybook integrations` : undefined,
38+
...(title
39+
? {
40+
title: `${title} tag | Storybook integrations`,
41+
}
42+
: undefined),
3843
};
3944
};
4045

apps/addon-catalog/app/[...addonName]/page.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,14 @@ export const generateMetadata: GenerateMetaData = async ({ params }) => {
3535
const name = (await params).addonName;
3636
const addon = await getAddonFromName(name);
3737

38+
const title = addon?.displayName ?? addon?.name;
39+
3840
return {
39-
title: addon?.displayName
40-
? `${addon.displayName} | Storybook integrations`
41-
: undefined,
41+
...(title
42+
? {
43+
title: `${title} | Storybook integrations`,
44+
}
45+
: undefined),
4246
};
4347
};
4448

apps/frontpage/app/docs/[...slug]/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ export const generateMetadata: GenerateMetaData = async ({ params }) => {
5050
);
5151

5252
return {
53-
title: page?.title ? `${page.title} | Storybook docs` : undefined,
53+
title: page?.title ? `${page.title} | Storybook docs` : 'Storybook docs',
5454
alternates: {
5555
canonical: findPage?.canonical,
5656
},

apps/frontpage/app/docs/page.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export async function generateMetadata(): Promise<Metadata> {
99
const page = await getPageData([latestVersion.id], latestVersion);
1010

1111
return {
12-
title: page?.title ? `${page.title} | Storybook docs` : undefined,
12+
title: page?.title ? `${page.title} | Storybook docs` : 'Storybook docs',
1313
alternates: {
1414
canonical: '/docs',
1515
},

apps/frontpage/app/recipes/[...name]/page.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,10 +55,14 @@ export const generateMetadata: GenerateMetaData = async ({ params }) => {
5555
const name = (await params).name;
5656
const recipe = await getRecipeFromName(name);
5757

58+
const title = recipe?.displayName ?? recipe?.name;
59+
5860
return {
59-
title: recipe?.displayName
60-
? `${recipe.displayName} | Storybook recipes`
61-
: undefined,
61+
...(title
62+
? {
63+
title: `${title} | Storybook recipes`,
64+
}
65+
: undefined),
6266
};
6367
};
6468

0 commit comments

Comments
 (0)