Skip to content

Commit

Permalink
Merge pull request #10812 from storybookjs/10497-argtypes-default-values
Browse files Browse the repository at this point in the history
Addon-docs: Eval argTypes default value
  • Loading branch information
shilman authored May 17, 2020
2 parents fa914a7 + 3200bbc commit 45b67d7
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 7 deletions.
16 changes: 10 additions & 6 deletions addons/docs/src/frameworks/react/extractArgTypes.ts
Original file line number Diff line number Diff line change
@@ -1,26 +1,30 @@
import { PropDef, PropsTableRowsProps } from '@storybook/components';
import { ArgTypes } from '@storybook/api';
import { ArgTypesExtractor } from '../../lib/docgen';
import { trimQuotes } from '../../lib/sbtypes/utils';
import { extractProps } from './extractProps';

const trim = (val: any) => (val && typeof val === 'string' ? trimQuotes(val) : val);

export const extractArgTypes: ArgTypesExtractor = (component) => {
if (component) {
const props = extractProps(component);
const { rows } = props as PropsTableRowsProps;
if (rows) {
return rows.reduce((acc: ArgTypes, row: PropDef) => {
const { type, sbType, defaultValue, jsDocTags, required } = row;
const { type, sbType, defaultValue: defaultSummary, jsDocTags, required } = row;
let defaultValue = defaultSummary && (defaultSummary.detail || defaultSummary.summary);
try {
// eslint-disable-next-line no-eval
defaultValue = eval(defaultValue);
// eslint-disable-next-line no-empty
} catch {}

acc[row.name] = {
...row,
defaultValue: defaultValue && trim(defaultValue.detail || defaultValue.summary),
defaultValue,
type: { required, ...sbType },
table: {
type,
jsDocTags,
defaultValue,
defaultValue: defaultSummary,
},
};
return acc;
Expand Down
2 changes: 1 addition & 1 deletion examples/official-storybook/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ module.exports = {
// FIXME: Breaks e2e tests './intro.stories.mdx',
'../../lib/ui/src/**/*.stories.(js|tsx|mdx)',
'../../lib/components/src/**/*.stories.(js|tsx|mdx)',
'./stories/**/*.stories.(js|tsx|mdx)',
'./stories/**/*.stories.(js|ts|tsx|mdx)',
'./../../addons/docs/**/*.stories.tsx',
],
addons: [
Expand Down

0 comments on commit 45b67d7

Please sign in to comment.