Skip to content

Commit

Permalink
Addon-docs: Fix React.forwardedRef/memo props (#8445)
Browse files Browse the repository at this point in the history
Addon-docs: Fix React.forwardedRef/memo props
  • Loading branch information
shilman committed Oct 22, 2019
1 parent 95f46e1 commit 2a23831
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 2 deletions.
14 changes: 12 additions & 2 deletions addons/docs/src/lib/getPropDefs.ts
Expand Up @@ -84,5 +84,15 @@ const propsFromPropTypes: PropDefGetter = type => {
return Object.values(props);
};

export const getPropDefs: PropDefGetter = type =>
hasDocgen(type.__docgenInfo) ? propsFromDocgen(type) : propsFromPropTypes(type);
export const getPropDefs: PropDefGetter = type => {
let processedType = type;
if (type.render) {
processedType = type.render().type;
}
if (typeof type.type === 'function') {
processedType = type.type().type;
}
return hasDocgen(processedType.__docgenInfo)
? propsFromDocgen(processedType)
: propsFromPropTypes(processedType);
};
@@ -0,0 +1,12 @@
import React from 'react';
import DocgenButton from '../../components/DocgenButton';

const ForwardedButton = React.forwardRef((props, ref) => <DocgenButton ref={ref} {...props} />);

export default {
title: 'Addons|Docs/ForwardRef',
component: ForwardedButton,
};

export const displaysCorrectly = () => <ForwardedButton>Hello World!</ForwardedButton>;
displaysCorrectly.story = { name: 'Displays forwarded ref components correctly' };
@@ -0,0 +1,12 @@
import React from 'react';
import DocgenButton from '../../components/DocgenButton';

const ButtonWithMemo = React.memo(props => <DocgenButton {...props} />);

export default {
title: 'Addons|Docs/ButtonWithMemo',
component: ButtonWithMemo,
};

export const displaysCorrectly = () => <ButtonWithMemo>Hello World!</ButtonWithMemo>;
displaysCorrectly.story = { name: 'Displays components with memo correctly' };

0 comments on commit 2a23831

Please sign in to comment.