Allow using <Source code=".." /> unattached.

This commit is contained in:
Tom Coleman 2023-01-27 15:09:36 +11:00
parent eb3cc8d463
commit 48dfc5d559
2 changed files with 13 additions and 2 deletions

View File

@ -78,6 +78,11 @@ export const Code: Story = {
args: { code },
};
export const CodeUnattached: Story = {
args: { code },
parameters: { attached: false },
};
export const CodeParameters: Story = {
args: { of: ParametersStories.Code },
};

View File

@ -114,10 +114,16 @@ export const useSourceProps = (
const resolved = docsContext.resolveOf(props.of, ['story']);
stories = [resolved.story];
} else if (stories.length === 0) {
stories = [docsContext.storyById()];
try {
// Always fall back to the primary story for source parameters, even if code is set.
stories = [docsContext.storyById()];
} catch (err) {
// You are allowed to use <Story code="..." /> unattached.
if (!props.code) throw err;
}
}
const sourceParameters = (stories[0].parameters.docs?.source || {}) as SourceParameters;
const sourceParameters = (stories[0]?.parameters?.docs?.source || {}) as SourceParameters;
let { code } = props; // We will fall back to `sourceParameters.code`, but per story below
let format = props.format ?? sourceParameters.format;
const language = props.language ?? sourceParameters.language ?? 'jsx';