diff --git a/app/react/src/server/framework-preset-react-docgen.ts b/app/react/src/server/framework-preset-react-docgen.ts
index cf731c96525..a525c8d03f9 100644
--- a/app/react/src/server/framework-preset-react-docgen.ts
+++ b/app/react/src/server/framework-preset-react-docgen.ts
@@ -1,19 +1,9 @@
-import { TransformOptions } from '@babel/core';
-import { Configuration } from 'webpack';
+import type { TransformOptions } from '@babel/core';
+import type { Configuration } from 'webpack';
import type { StorybookOptions } from '@storybook/core/types';
-const DEFAULT_DOCGEN = 'react-docgen-typescript';
-
-const getDocgen = (typescriptOptions: StorybookOptions['typescriptOptions']) => {
- const docgen = typescriptOptions?.reactDocgen;
- return typeof docgen === 'undefined' ? DEFAULT_DOCGEN : docgen;
-};
-
-export function babel(
- config: TransformOptions,
- { typescriptOptions }: StorybookOptions = { typescriptOptions: {} }
-) {
- const reactDocgen = getDocgen(typescriptOptions);
+export function babel(config: TransformOptions, { typescriptOptions }: StorybookOptions) {
+ const { reactDocgen } = typescriptOptions;
if (!reactDocgen) {
return config;
}
@@ -35,11 +25,8 @@ export function babel(
};
}
-export function webpackFinal(
- config: Configuration,
- { typescriptOptions }: StorybookOptions = { typescriptOptions: {} }
-) {
- const reactDocgen = getDocgen(typescriptOptions);
+export function webpackFinal(config: Configuration, { typescriptOptions }: StorybookOptions) {
+ const { reactDocgen, reactDocgenTypescriptOptions } = typescriptOptions;
if (reactDocgen !== 'react-docgen-typescript') return config;
return {
...config,
@@ -53,7 +40,7 @@ export function webpackFinal(
use: [
{
loader: require.resolve('react-docgen-typescript-loader'),
- options: typescriptOptions?.reactDocgenTypescriptOptions,
+ options: reactDocgenTypescriptOptions,
},
],
},
diff --git a/examples/react-ts/main.js b/examples/react-ts/main.ts
similarity index 76%
rename from examples/react-ts/main.js
rename to examples/react-ts/main.ts
index e901e7decb6..17f75117a16 100644
--- a/examples/react-ts/main.js
+++ b/examples/react-ts/main.ts
@@ -1,12 +1,13 @@
+import type { StorybookConfig } from '@storybook/core/types';
+
module.exports = {
stories: ['./src/*.stories.*'],
addons: ['@storybook/addon-essentials'],
typescript: {
check: true,
checkOptions: {},
- reactDocgen: 'react-docgen-typescript',
reactDocgenTypescriptOptions: {
propFilter: (prop) => ['label', 'disabled'].includes(prop.name),
},
},
-};
+} as StorybookConfig;
diff --git a/examples/react-ts/package.json b/examples/react-ts/package.json
index 6ab3104715d..0d31cc0c602 100644
--- a/examples/react-ts/package.json
+++ b/examples/react-ts/package.json
@@ -12,6 +12,7 @@
"@storybook/react": "6.0.0-beta.8",
"@types/react": "^16.9.35",
"@types/react-dom": "^16.9.8",
+ "prop-types": "15.7.2",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"typescript": "^3.9.2",
diff --git a/examples/react-ts/src/button.stories.tsx b/examples/react-ts/src/button.stories.tsx
index b2350a28722..4f6fa70cb1c 100644
--- a/examples/react-ts/src/button.stories.tsx
+++ b/examples/react-ts/src/button.stories.tsx
@@ -2,7 +2,7 @@ import React from 'react';
import { argsStory } from '@storybook/react';
import { Button } from './button';
-export default { component: Button, title: 'Examples/Button' };
+export default { component: Button, title: 'Examples / Button' };
export const WithArgs = argsStory({ label: 'With args' });
export const Basic = () => ;
diff --git a/examples/react-ts/src/button.tsx b/examples/react-ts/src/button.tsx
index d91f88f34b3..f3c9ee6b83e 100644
--- a/examples/react-ts/src/button.tsx
+++ b/examples/react-ts/src/button.tsx
@@ -1,4 +1,4 @@
-import React, { FC, ButtonHTMLAttributes } from 'react';
+import React, { ButtonHTMLAttributes } from 'react';
export interface ButtonProps extends ButtonHTMLAttributes {
/**
@@ -7,8 +7,8 @@ export interface ButtonProps extends ButtonHTMLAttributes {
label: string;
}
-export const Button = ({ label, disabled }: ButtonProps) => (
-