diff --git a/scripts/generators/patternfly-4-component/index.js b/scripts/generators/patternfly-4-component/index.js index a26aaa73b24..7a0d8608477 100644 --- a/scripts/generators/patternfly-4-component/index.js +++ b/scripts/generators/patternfly-4-component/index.js @@ -32,17 +32,40 @@ function setPF4Generators(plop) { }; return [ { - base, data, - type: 'addMany', - destination: join(reactCoreRoot, './src/{{typeDir}}/{{componentName}}/'), - templateFiles: join(base, '**/*.js') + type: 'add', + templateFile: join(base, 'component.tsx.hbs'), + path: join(reactCoreRoot, './src/{{typeDir}}/{{componentName}}/{{componentName}}.tsx') + }, + { + data, + type: 'add', + templateFile: join(base, 'component.test.tsx.hbs'), + path: join(reactCoreRoot, './src/{{typeDir}}/{{componentName}}/{{componentName}}.test.tsx') + }, + { + data, + type: 'add', + templateFile: join(base, 'component.docs.js.hbs'), + path: join(reactCoreRoot, './src/{{typeDir}}/{{componentName}}/{{componentName}}.docs.js') + }, + { + data, + type: 'add', + templateFile: join(base, 'index.ts.hbs'), + path: join(reactCoreRoot, './src/{{typeDir}}/{{componentName}}/index.ts') + }, + { + data, + type: 'add', + templateFile: join(base, 'example.js.hbs'), + path: join(reactCoreRoot, './src/{{typeDir}}/{{componentName}}/example/Simple{{componentName}}.ts') }, { data, type: ADD_TO_BARREL_FILE, template: `export * from './{{componentName}}';`, - path: join(reactCoreRoot, './src/{{typeDir}}/index.js') + path: join(reactCoreRoot, './src/{{typeDir}}/index.ts') } ]; } diff --git a/scripts/generators/patternfly-4-component/templates/component/{{componentName}}.docs.js b/scripts/generators/patternfly-4-component/templates/component/component.docs.js.hbs similarity index 100% rename from scripts/generators/patternfly-4-component/templates/component/{{componentName}}.docs.js rename to scripts/generators/patternfly-4-component/templates/component/component.docs.js.hbs diff --git a/scripts/generators/patternfly-4-component/templates/component/{{componentName}}.test.js b/scripts/generators/patternfly-4-component/templates/component/component.test.tsx.hbs similarity index 100% rename from scripts/generators/patternfly-4-component/templates/component/{{componentName}}.test.js rename to scripts/generators/patternfly-4-component/templates/component/component.test.tsx.hbs diff --git a/scripts/generators/patternfly-4-component/templates/component/component.tsx.hbs b/scripts/generators/patternfly-4-component/templates/component/component.tsx.hbs new file mode 100644 index 00000000000..4911d7ef7be --- /dev/null +++ b/scripts/generators/patternfly-4-component/templates/component/component.tsx.hbs @@ -0,0 +1,24 @@ +import React, { DetailedHTMLProps } from 'react'; +import styles from '@patternfly/patternfly-next/{{typeDir}}/{{componentName}}/styles.css'; +import { css } from '@patternfly/react-styles'; +import PropTypes from 'prop-types'; + +const defaultProps = { + children: null, + className: '' +}; + +interface {{ componentName }}Props { + children?: any; + className?: string; +} + +const {{componentName}}: React.SFC<{{componentName}}Props> = (props) => ( +