Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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';
Expand Down Expand Up @@ -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]);

Expand Down Expand Up @@ -196,3 +199,15 @@ export const FluentDocsPage = () => {
</div>
);
};

function assertStoryMetaValues(story: ReturnType<DocsContextProps['componentStories']>[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'),
);
}
}
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import type { Meta } from '@storybook/react';
import CreateMotionComponentDescription from './CreateMotionComponentDescription.md';

export { CreateMotionComponentDefault as Default } from './CreateMotionComponentDefault.stories';
Expand All @@ -14,12 +15,11 @@ export { MotionFunctionParams as functionParams } from './MotionFunctionParams.s

export default {
title: 'Motion/APIs/createMotionComponent',
component: null,
parameters: {
docs: {
description: {
component: CreateMotionComponentDescription,
},
},
},
};
} satisfies Meta;
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import type { Meta } from '@storybook/react';
import CreatePresenceComponentDescription from './CreatePresenceComponentDescription.md';

export { CreatePresenceComponentDefault as Default } from './CreatePresenceComponentDefault.stories';
Expand All @@ -14,12 +15,11 @@ export { PresenceMotionFunctionParams as functionParams } from './PresenceMotion

export default {
title: 'Motion/APIs/createPresenceComponent',
component: null,
parameters: {
docs: {
description: {
component: CreatePresenceComponentDescription,
},
},
},
};
} satisfies Meta;
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
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: {
component: PresenceGroupDescription,
},
},
},
};
} satisfies Meta;