From baace23d5f396606811113c265937896adecb662 Mon Sep 17 00:00:00 2001 From: Andrew Lisowski Date: Sat, 13 Jun 2020 17:45:58 -0700 Subject: [PATCH] fix default export w/forwardRef --- src/__tests__/data/ForwardRefDefaultExport.tsx | 15 +++++++++++++++ src/__tests__/parser.ts | 12 ++++++++++++ src/parser.ts | 6 ++++-- 3 files changed, 31 insertions(+), 2 deletions(-) create mode 100644 src/__tests__/data/ForwardRefDefaultExport.tsx diff --git a/src/__tests__/data/ForwardRefDefaultExport.tsx b/src/__tests__/data/ForwardRefDefaultExport.tsx new file mode 100644 index 00000000..7f5911da --- /dev/null +++ b/src/__tests__/data/ForwardRefDefaultExport.tsx @@ -0,0 +1,15 @@ +import * as React from 'react'; + +export interface ForwardRefDefaultExportProps { + /** myProp description */ + myProp: string; +} + +/** ForwardRefDefaultExport description */ +const ForwardRefDefaultExport = React.forwardRef( + (props: ForwardRefDefaultExportProps, ref: React.Ref) => ( +
My Property = {props.myProp}
+ ) +); + +export default ForwardRefDefaultExport; diff --git a/src/__tests__/parser.ts b/src/__tests__/parser.ts index aa1f9985..326af97d 100644 --- a/src/__tests__/parser.ts +++ b/src/__tests__/parser.ts @@ -365,6 +365,18 @@ describe('parser', () => { }); }); + it('should get name for default export', () => { + check( + 'ForwardRefDefaultExport', + { + ForwardRefDefaultExport: { + myProp: { type: 'string' } + } + }, + false + ); + }); + it('should component where last line is a comment', () => { check('ExportObject', { Baz: { diff --git a/src/parser.ts b/src/parser.ts index bdd43564..3c98115f 100644 --- a/src/parser.ts +++ b/src/parser.ts @@ -265,7 +265,8 @@ export class Parser { expName === 'Stateless' || expName === 'StyledComponentClass' || expName === 'StyledComponent' || - expName === 'FunctionComponent' + expName === 'FunctionComponent' || + expName === 'ForwardRefExoticComponent' ) { commentSource = this.checker.getAliasedSymbol(commentSource); } else { @@ -995,7 +996,8 @@ function computeComponentName(exp: ts.Symbol, source: ts.SourceFile) { exportName === 'StyledComponentClass' || exportName === 'StyledComponent' || exportName === 'FunctionComponent' || - exportName === 'StatelessComponent' + exportName === 'StatelessComponent' || + exportName === 'ForwardRefExoticComponent' ) { return getDefaultExportForFile(source); } else {