From b36473f04f19dd89818f4b08c9075379e0fac464 Mon Sep 17 00:00:00 2001 From: Martin Hochel Date: Thu, 5 Sep 2024 12:03:48 +0200 Subject: [PATCH 1/2] feat(public-docsite-v9): assert primaryStory config within docs --- .../src/DocsComponents/FluentDocsPage.stories.tsx | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/apps/public-docsite-v9/src/DocsComponents/FluentDocsPage.stories.tsx b/apps/public-docsite-v9/src/DocsComponents/FluentDocsPage.stories.tsx index e41f63f8d52d2..aaf9bf8cc8b02 100644 --- a/apps/public-docsite-v9/src/DocsComponents/FluentDocsPage.stories.tsx +++ b/apps/public-docsite-v9/src/DocsComponents/FluentDocsPage.stories.tsx @@ -8,6 +8,7 @@ import { HeaderMdx, Primary, Stories, + type DocsContextProps, } from '@storybook/addon-docs'; import type { SBEnumType } from '@storybook/csf'; import { makeStyles, shorthands, tokens, Link, Text } from '@fluentui/react-components'; @@ -135,6 +136,8 @@ export const FluentDocsPage = () => { const primaryStory = stories[0]; const primaryStoryContext = context.getStoryContext(primaryStory); + assertStoryMetaValues(primaryStory); + const dir = primaryStoryContext.parameters?.dir ?? primaryStoryContext.globals?.[DIR_ID] ?? 'ltr'; const selectedTheme = themes.find(theme => theme.id === primaryStoryContext.globals![THEME_ID]); @@ -196,3 +199,15 @@ export const FluentDocsPage = () => { ); }; + +function assertStoryMetaValues(story: ReturnType[number]) { + if (story.component === null) { + throw new Error( + [ + '🚨 Invalid Story Meta declaration:', + `- primaryStory.component of componentId:${story.componentId} is "null"`, + '- to resolve this error, please update "component" property value in your story definition to reference a React Component or remove it if it is not needed.', + ].join('\n'), + ); + } +} From 1430e5a8c0e05e1a5db7a70a2a2092047f7e6ddf Mon Sep 17 00:00:00 2001 From: Martin Hochel Date: Thu, 5 Sep 2024 12:04:28 +0200 Subject: [PATCH 2/2] fix(react-motion-stories): fix invalid primary stories Meta definition --- .../stories/src/CreateMotionComponent/index.stories.ts | 4 ++-- .../stories/src/CreatePresenceComponent/index.stories.ts | 4 ++-- .../react-motion/stories/src/PresenceGroup/index.stories.ts | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/packages/react-components/react-motion/stories/src/CreateMotionComponent/index.stories.ts b/packages/react-components/react-motion/stories/src/CreateMotionComponent/index.stories.ts index 5f6dd279d5ba6..bc1173d4430a6 100644 --- a/packages/react-components/react-motion/stories/src/CreateMotionComponent/index.stories.ts +++ b/packages/react-components/react-motion/stories/src/CreateMotionComponent/index.stories.ts @@ -1,3 +1,4 @@ +import type { Meta } from '@storybook/react'; import CreateMotionComponentDescription from './CreateMotionComponentDescription.md'; export { CreateMotionComponentDefault as Default } from './CreateMotionComponentDefault.stories'; @@ -14,7 +15,6 @@ export { MotionFunctionParams as functionParams } from './MotionFunctionParams.s export default { title: 'Motion/APIs/createMotionComponent', - component: null, parameters: { docs: { description: { @@ -22,4 +22,4 @@ export default { }, }, }, -}; +} satisfies Meta; diff --git a/packages/react-components/react-motion/stories/src/CreatePresenceComponent/index.stories.ts b/packages/react-components/react-motion/stories/src/CreatePresenceComponent/index.stories.ts index 57c47ca3af85b..1eed397e33eb4 100644 --- a/packages/react-components/react-motion/stories/src/CreatePresenceComponent/index.stories.ts +++ b/packages/react-components/react-motion/stories/src/CreatePresenceComponent/index.stories.ts @@ -1,3 +1,4 @@ +import type { Meta } from '@storybook/react'; import CreatePresenceComponentDescription from './CreatePresenceComponentDescription.md'; export { CreatePresenceComponentDefault as Default } from './CreatePresenceComponentDefault.stories'; @@ -14,7 +15,6 @@ export { PresenceMotionFunctionParams as functionParams } from './PresenceMotion export default { title: 'Motion/APIs/createPresenceComponent', - component: null, parameters: { docs: { description: { @@ -22,4 +22,4 @@ export default { }, }, }, -}; +} satisfies Meta; diff --git a/packages/react-components/react-motion/stories/src/PresenceGroup/index.stories.ts b/packages/react-components/react-motion/stories/src/PresenceGroup/index.stories.ts index 7563915d20d48..ac4894f5b7047 100644 --- a/packages/react-components/react-motion/stories/src/PresenceGroup/index.stories.ts +++ b/packages/react-components/react-motion/stories/src/PresenceGroup/index.stories.ts @@ -1,10 +1,10 @@ +import type { Meta } from '@storybook/react'; import PresenceGroupDescription from './PresenceGroupDescription.md'; export { PresenceGroupDefault as Default } from './PresenceGroupDefault.stories'; export default { title: 'Motion/APIs/PresenceGroup', - component: null, parameters: { docs: { description: { @@ -12,4 +12,4 @@ export default { }, }, }, -}; +} satisfies Meta;