From 1ccca663d84ebb8a41599a3942dc356a72ee529a Mon Sep 17 00:00:00 2001 From: Patrick Riley Date: Mon, 8 Jan 2018 09:45:31 -0500 Subject: [PATCH] docs(story-template): modify the default template and add inline templates --- src/components/Alert/Alert.stories.js | 3 +- src/components/Badge/Badge.stories.js | 6 +- .../Breadcrumb/Breadcrumb.stories.js | 5 +- src/components/Button/Button.stories.js | 89 ++++++++++------- src/components/Chart/Chart.stories.js | 21 ---- .../Chart/Stories/AreaChartStory.js | 46 +++++---- src/components/Chart/Stories/BarChartStory.js | 95 ++++++++++-------- .../Chart/Stories/DonutChartStory.js | 70 +++++++------ .../Chart/Stories/LineChartStory.js | 98 +++++++++++-------- src/components/Chart/Stories/PieChartStory.js | 39 +++++--- .../DropdownKebab/DropdownKebab.stories.js | 5 +- .../EmptyState/EmptyState.stories.js | 3 +- src/components/Filter/Filter.stories.js | 4 +- src/components/Form/Form.stories.js | 95 +++++++++++++----- src/components/Grid/Grid.stories.js | 3 +- src/components/Label/Label.stories.js | 16 +-- src/components/ListGroup/ListGroup.stories.js | 17 +--- src/components/ListView/ListView.stories.js | 4 +- src/components/MenuItem/MenuItem.stories.js | 7 +- src/components/Modal/Modal.stories.js | 46 ++++----- src/components/Popover/Popover.stories.js | 16 +-- src/components/Spinner/Spinner.stories.js | 5 +- .../ToastNotification.stories.js | 28 ++++-- src/components/Tooltip/Tooltip.stories.js | 16 +-- src/components/Wizard/Wizard.stories.js | 4 +- storybook/constants.js | 16 +++ storybook/decorators/storyTemplates.js | 92 +++++++++++++---- 27 files changed, 498 insertions(+), 351 deletions(-) create mode 100644 storybook/constants.js diff --git a/src/components/Alert/Alert.stories.js b/src/components/Alert/Alert.stories.js index 400802cc01f..df88133de69 100644 --- a/src/components/Alert/Alert.stories.js +++ b/src/components/Alert/Alert.stories.js @@ -3,6 +3,7 @@ import { storiesOf } from '@storybook/react'; import { action } from '@storybook/addon-actions'; import { withKnobs, text } from '@storybook/addon-knobs'; import { defaultTemplate } from '../../../storybook/decorators/storyTemplates'; +import { DOCUMENTATION_URL } from '../../../storybook/constants'; import { Alert } from './index'; const stories = storiesOf('Alert', module); @@ -11,7 +12,7 @@ stories.addDecorator( defaultTemplate({ title: 'Alert / Inline Notification', documentationLink: - 'http://www.patternfly.org/pattern-library/communication/inline-notifications/' + DOCUMENTATION_URL.PATTERNFLY_ORG_COMMUNICATION + 'inline-notifications/' }) ); diff --git a/src/components/Badge/Badge.stories.js b/src/components/Badge/Badge.stories.js index 4263b955d9f..addec75f458 100644 --- a/src/components/Badge/Badge.stories.js +++ b/src/components/Badge/Badge.stories.js @@ -1,6 +1,7 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; import { defaultTemplate } from '../../../storybook/decorators/storyTemplates'; +import { DOCUMENTATION_URL } from '../../../storybook/constants'; import { Badge } from './index'; const stories = storiesOf('Badges', module); @@ -9,7 +10,7 @@ const description = (

This component is based on React Bootstrap Badge component. Badges easily highlight new or unread items. See{' '} - + React Bootstrap Docs {' '} for complete Badge component documentation. @@ -19,8 +20,7 @@ const description = ( stories.addDecorator( defaultTemplate({ title: 'Badges', - documentationLink: - 'http://www.patternfly.org/pattern-library/widgets/#badges', + documentationLink: DOCUMENTATION_URL.PATTERNFLY_ORG_WIDGETS + '#badges', description: description }) ); diff --git a/src/components/Breadcrumb/Breadcrumb.stories.js b/src/components/Breadcrumb/Breadcrumb.stories.js index 74c15aa3418..88022519dca 100644 --- a/src/components/Breadcrumb/Breadcrumb.stories.js +++ b/src/components/Breadcrumb/Breadcrumb.stories.js @@ -1,6 +1,7 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; import { defaultTemplate } from '../../../storybook/decorators/storyTemplates'; +import { DOCUMENTATION_URL } from '../../../storybook/constants'; import { Breadcrumb } from './index'; const stories = storiesOf('Breadcrumb', module); @@ -9,7 +10,7 @@ const description = (

This component is based on React Bootstrap Breadcrumb component. Breadcrumbs are used to indicate the current page's location. See{' '} - + React Bootstrap Docs {' '} for complete Breadcrumb component documentation. @@ -20,7 +21,7 @@ stories.addDecorator( defaultTemplate({ title: 'Breadcrumb', documentationLink: - 'http://www.patternfly.org/pattern-library/navigation/breadcrumbs/', + DOCUMENTATION_URL.PATTERNFLY_ORG_NAVIGATION + 'breadcrumbs/', description: description }) ); diff --git a/src/components/Button/Button.stories.js b/src/components/Button/Button.stories.js index 5d608f31702..9d486134cb5 100644 --- a/src/components/Button/Button.stories.js +++ b/src/components/Button/Button.stories.js @@ -2,52 +2,44 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; import { action } from '@storybook/addon-actions'; import { withKnobs, select } from '@storybook/addon-knobs'; -import { defaultTemplate } from '../../../storybook/decorators/storyTemplates'; +import { inlineTemplate } from '../../../storybook/decorators/storyTemplates'; +import { DOCUMENTATION_URL } from '../../../storybook/constants'; import { Grid, Row, Col, MenuItem } from '../../index'; import { Button, ButtonGroup, DropdownButton, SplitButton } from './index'; import { BUTTON_BS_STYLES } from './constants'; const stories = storiesOf('Button', module); -const description = ( -

- This component is based on React Bootstrap Button component. See{' '} - - React Bootstrap Docs - {' '} - for complete Button component documentation. -

-); - stories.addDecorator(withKnobs); -stories.addDecorator( - defaultTemplate({ - title: 'Button', - documentationLink: - 'http://www.patternfly.org/pattern-library/widgets/#buttons', - description: description - }) -); -stories.addWithInfo('Button', '', () => ( -
-

- {' '} - {' '} - {' '} - -

-

- {' '} - {' '} - {' '} - -

-
-)); +stories.addWithInfo('Button', '', () => { + let story = ( +
+

+ {' '} + {' '} + {' '} + +

+

+ {' '} + {' '} + {' '} + +

+
+ ); + return inlineTemplate({ + title: 'Button', + documentationLink: DOCUMENTATION_URL.PATTERNFLY_ORG_WIDGETS + '#buttons', + reactBootstrapDocumentationLink: + DOCUMENTATION_URL.REACT_BOOTSTRAP_COMPONENT + 'buttons/', + story: story + }); +}); stories.addWithInfo('ButtonGroup', () => { - return ( + let story = ( @@ -141,6 +133,14 @@ stories.addWithInfo('ButtonGroup', () => { ); + return inlineTemplate({ + title: 'ButtonGroup', + documentationLink: + DOCUMENTATION_URL.PATTERNFLY_ORG_WIDGETS + '#button-groups', + reactBootstrapDocumentationLink: + DOCUMENTATION_URL.REACT_BOOTSTRAP_COMPONENT + 'button-group/', + story: story + }); }); stories.addWithInfo('DropdownButton', '', () => { @@ -150,7 +150,7 @@ stories.addWithInfo('DropdownButton', '', () => { const props = { bsStyle, title: bsStyle, id: 'dropdown-example' }; if (bsSize) props.bsSize = bsSize; - return ( + let story = ( Action Another action @@ -161,6 +161,12 @@ stories.addWithInfo('DropdownButton', '', () => { Separated link ); + return inlineTemplate({ + title: 'DropdownButton', + reactBootstrapDocumentationLink: + DOCUMENTATION_URL.REACT_BOOTSTRAP_COMPONENT + 'dropdowns/', + story: story + }); }); stories.addWithInfo('SplitButton', '', () => { @@ -170,7 +176,7 @@ stories.addWithInfo('SplitButton', '', () => { const props = { bsStyle, title: bsStyle, id: 'dropdown-example' }; if (bsSize) props.bsSize = bsSize; - return ( + let story = ( Action Another action @@ -181,4 +187,11 @@ stories.addWithInfo('SplitButton', '', () => { Separated link ); + + return inlineTemplate({ + title: 'SplitButton', + reactBootstrapDocumentationLink: + DOCUMENTATION_URL.REACT_BOOTSTRAP_COMPONENT + 'dropdowns/', + story: story + }); }); diff --git a/src/components/Chart/Chart.stories.js b/src/components/Chart/Chart.stories.js index d11fe9d0dec..a54a9550326 100644 --- a/src/components/Chart/Chart.stories.js +++ b/src/components/Chart/Chart.stories.js @@ -1,7 +1,4 @@ -import React from 'react'; import { storiesOf } from '@storybook/react'; -import { defaultTemplate } from '../../../storybook/decorators/storyTemplates'; - import { areaChartAddWithInfo, barChartAddWithInfo, @@ -11,24 +8,6 @@ import { } from './Stories'; const stories = storiesOf('Chart', module); -const description = ( -

- This component is based on Patternfly Chart component. See{' '} - - Patternfly Chart Docs - {' '} - for complete Chart component documentation. -

-); - -stories.addDecorator( - defaultTemplate({ - title: 'Chart', - documentationLink: - 'http://www.patternfly.org/pattern-library/data-visualization/line-chart/', - description: description - }) -); /** * Chart stories diff --git a/src/components/Chart/Stories/AreaChartStory.js b/src/components/Chart/Stories/AreaChartStory.js index a72d94f4383..8451b24f06d 100644 --- a/src/components/Chart/Stories/AreaChartStory.js +++ b/src/components/Chart/Stories/AreaChartStory.js @@ -1,5 +1,7 @@ import React from 'react'; import { AreaChart, SingleAreaChart } from '../index'; +import { inlineTemplate } from '../../../../storybook/decorators/storyTemplates'; +import { DOCUMENTATION_URL } from '../../../../storybook/constants'; /** * Story constants @@ -27,27 +29,35 @@ const singleAreaChartData = { */ const areaChartAddWithInfo = stories => { - stories.addWithInfo('Area Charts', '', () => ( -
-

Area Chart

+ stories.addWithInfo('Area Charts', '', () => { + let story = (
- -
+

Area Chart

+
+ +
-

Single Area Chart

-
- +

Single Area Chart

+
+ +
-
- )); + ); + return inlineTemplate({ + title: 'Area Charts', + documentationLink: + DOCUMENTATION_URL.PATTERNFLY_ORG_DATA_VISUALIZATION + 'area-chart/', + story: story + }); + }); }; export default areaChartAddWithInfo; diff --git a/src/components/Chart/Stories/BarChartStory.js b/src/components/Chart/Stories/BarChartStory.js index f3c4cdfac90..9719c92b3ce 100644 --- a/src/components/Chart/Stories/BarChartStory.js +++ b/src/components/Chart/Stories/BarChartStory.js @@ -3,6 +3,9 @@ import React from 'react'; import { patternfly } from '../../../common/patternfly'; import { BarChart, GroupedBarChart, StackedBarChart } from '../index'; +import { inlineTemplate } from '../../../../storybook/decorators/storyTemplates'; +import { DOCUMENTATION_URL } from '../../../../storybook/constants'; + /** * BarChart constants */ @@ -71,53 +74,61 @@ const horizontalBarChartConfigAxis = { */ const barChartAddWithInfo = stories => { - stories.addWithInfo('Bar Charts', '', () => ( -
-

Bar Chart

+ stories.addWithInfo('Bar Charts', '', () => { + let story = (
- -
+

Bar Chart

+
+ +
-

Grouped Bar Chart

-
- -
+

Grouped Bar Chart

+
+ +
-

Stacked Bar Chart

-
- -
+

Stacked Bar Chart

+
+ +
-

Horizontal Bar Chart

-
- +

Horizontal Bar Chart

+
+ +
-
- )); + ); + return inlineTemplate({ + title: 'Bar Charts', + documentationLink: + DOCUMENTATION_URL.PATTERNFLY_ORG_DATA_VISUALIZATION + 'bar-chart/', + story: story + }); + }); }; export default barChartAddWithInfo; diff --git a/src/components/Chart/Stories/DonutChartStory.js b/src/components/Chart/Stories/DonutChartStory.js index 7970b183216..ce38866c48d 100644 --- a/src/components/Chart/Stories/DonutChartStory.js +++ b/src/components/Chart/Stories/DonutChartStory.js @@ -2,6 +2,9 @@ import React from 'react'; import { patternfly } from '../../../common/patternfly'; import { DonutChart } from '../index'; +import { inlineTemplate } from '../../../../storybook/decorators/storyTemplates'; +import { DOCUMENTATION_URL } from '../../../../storybook/constants'; + /** * DonutChart constants */ @@ -50,38 +53,47 @@ const donutRightConfigTitle = { type: 'total', secondary: 'Animals' }; */ const donutChartAddWithInfo = stories => { - stories.addWithInfo('Donut Charts', '', () => ( -
-

Donut Chart - Utilization

+ stories.addWithInfo('Donut Charts', '', () => { + let story = (
- -
+

Donut Chart - Utilization

+
+ +
-

Donut Chart - Relationship to a Whole

-
- +

Donut Chart - Relationship to a Whole

+
+ +
-
- )); + ); + + return inlineTemplate({ + title: 'Donut Charts', + documentationLink: + DOCUMENTATION_URL.PATTERNFLY_ORG_DATA_VISUALIZATION + 'donut-chart/', + story: story + }); + }); }; export default donutChartAddWithInfo; diff --git a/src/components/Chart/Stories/LineChartStory.js b/src/components/Chart/Stories/LineChartStory.js index 131b6dadfab..640f40ac80b 100644 --- a/src/components/Chart/Stories/LineChartStory.js +++ b/src/components/Chart/Stories/LineChartStory.js @@ -1,6 +1,9 @@ import React from 'react'; import { LineChart, SingleLineChart, SparklineChart } from '../index'; +import { inlineTemplate } from '../../../../storybook/decorators/storyTemplates'; +import { DOCUMENTATION_URL } from '../../../../storybook/constants'; + /** * LineChart constants */ @@ -36,55 +39,64 @@ const singleSplineChartConfigData = { */ const lineChartAddWithInfo = stories => { - stories.addWithInfo('Line Charts', '', () => ( -
-

Sparkline

+ stories.addWithInfo('Line Charts', '', () => { + let story = (
- -
-
Less than one year remaining
+

Sparkline

+
+ +
+
Less than one year remaining
-

Line Chart

-
- -
+

Line Chart

+
+ +
-

Single Line Chart

-
- -
+

Single Line Chart

+
+ +
-

Spline Chart

-
- -
+

Spline Chart

+
+ +
-

Single Spline Chart

-
- +

Single Spline Chart

+
+ +
-
- )); + ); + + return inlineTemplate({ + title: 'Line Charts', + documentationLink: + DOCUMENTATION_URL.PATTERNFLY_ORG_DATA_VISUALIZATION + 'line-chart/', + story: story + }); + }); }; export default lineChartAddWithInfo; diff --git a/src/components/Chart/Stories/PieChartStory.js b/src/components/Chart/Stories/PieChartStory.js index 11f1f32db94..545fbadebea 100644 --- a/src/components/Chart/Stories/PieChartStory.js +++ b/src/components/Chart/Stories/PieChartStory.js @@ -2,6 +2,9 @@ import React from 'react'; import { patternfly } from '../../../common/patternfly'; import { PieChart } from '../index'; +import { inlineTemplate } from '../../../../storybook/decorators/storyTemplates'; +import { DOCUMENTATION_URL } from '../../../../storybook/constants'; + /** * PieChart constants */ @@ -25,22 +28,30 @@ const pieChartRightConfigLegend = { */ const pieChartAddWithInfo = stories => { - stories.addWithInfo('Pie Charts', '', () => ( -
-

Pie Chart - Relationship to a Whole

+ stories.addWithInfo('Pie Charts', '', () => { + let story = (
- +

Pie Chart - Relationship to a Whole

+
+ +
-
- )); + ); + return inlineTemplate({ + title: 'Pie Charts', + documentationLink: + DOCUMENTATION_URL.PATTERNFLY_ORG_DATA_VISUALIZATION + 'pie-chart/', + story: story + }); + }); }; export default pieChartAddWithInfo; diff --git a/src/components/DropdownKebab/DropdownKebab.stories.js b/src/components/DropdownKebab/DropdownKebab.stories.js index ff75fe6c27c..0190b538bf5 100644 --- a/src/components/DropdownKebab/DropdownKebab.stories.js +++ b/src/components/DropdownKebab/DropdownKebab.stories.js @@ -1,8 +1,8 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; import { withKnobs, boolean } from '@storybook/addon-knobs'; - import { defaultTemplate } from '../../../storybook/decorators/storyTemplates'; +import { DOCUMENTATION_URL } from '../../../storybook/constants'; import { Button } from '../Button'; import { MenuItem } from '../MenuItem'; import { DropdownKebab } from './index'; @@ -12,8 +12,7 @@ stories.addDecorator(withKnobs); stories.addDecorator( defaultTemplate({ title: 'Kebab Dropdown', - documentationLink: - 'http://www.patternfly.org/pattern-library/widgets/#kebabs' + documentationLink: DOCUMENTATION_URL.PATTERNFLY_ORG_WIDGETS + '#kebabs' }) ); diff --git a/src/components/EmptyState/EmptyState.stories.js b/src/components/EmptyState/EmptyState.stories.js index 26c3b67aa0e..2d4ff4aa98c 100644 --- a/src/components/EmptyState/EmptyState.stories.js +++ b/src/components/EmptyState/EmptyState.stories.js @@ -2,6 +2,7 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; import { action } from '@storybook/addon-actions'; import { defaultTemplate } from '../../../storybook/decorators/storyTemplates'; +import { DOCUMENTATION_URL } from '../../../storybook/constants'; import { Button } from '../Button'; import { EmptyState } from './index'; @@ -11,7 +12,7 @@ stories.addDecorator( defaultTemplate({ title: 'Empty State', documentationLink: - 'http://www.patternfly.org/pattern-library/communication/empty-state/' + DOCUMENTATION_URL.PATTERNFLY_ORG_COMMUNICATION + 'empty-state/' }) ); diff --git a/src/components/Filter/Filter.stories.js b/src/components/Filter/Filter.stories.js index 8006ac3b915..28454480ad1 100644 --- a/src/components/Filter/Filter.stories.js +++ b/src/components/Filter/Filter.stories.js @@ -1,6 +1,7 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; import { defaultTemplate } from '../../../storybook/decorators/storyTemplates'; +import { DOCUMENTATION_URL } from '../../../storybook/constants'; import { withInfo } from '@storybook/addon-info/dist/index'; import { Filter, @@ -20,8 +21,7 @@ const stories = storiesOf('Filter', module); stories.addDecorator( defaultTemplate({ title: 'Filter', - documentationLink: - 'http://www.patternfly.org/pattern-library/forms-and-controls/filter/' + documentationLink: DOCUMENTATION_URL.PATTERNFLY_ORG_FORMS + 'filter/' }) ); diff --git a/src/components/Form/Form.stories.js b/src/components/Form/Form.stories.js index 245dee24a9a..6280b428726 100644 --- a/src/components/Form/Form.stories.js +++ b/src/components/Form/Form.stories.js @@ -4,7 +4,8 @@ import React from 'react'; import { storiesOf } from '@storybook/react'; import { action } from '@storybook/addon-actions'; import { withKnobs, boolean } from '@storybook/addon-knobs'; -import { defaultTemplate } from '../../../storybook/decorators/storyTemplates'; +import { inlineTemplate } from '../../../storybook/decorators/storyTemplates'; +import { DOCUMENTATION_URL } from '../../../storybook/constants'; import { Icon } from '../Icon'; import { Col, Row, Grid } from '../Grid'; import { Button } from '../Button'; @@ -38,24 +39,24 @@ const stories = storiesOf('Forms', module); stories.addDecorator(withKnobs); -const description = ( -

- Those components are based on React Bootstrap Form components. See{' '} - - React Bootstrap Docs - {' '} - for complete Form components documentation. -

-); - -stories.addDecorator( - defaultTemplate({ - title: 'Forms', - documentationLink: - 'http://www.patternfly.org/pattern-library/widgets/#forms', - description: description - }) -); +// const description = ( +//

+// Those components are based on React Bootstrap Form components. See{' '} +// +// React Bootstrap Docs +// {' '} +// for complete Form components documentation. +//

+// ); + +// stories.addDecorator( +// defaultTemplate({ +// title: 'Forms', +// documentationLink: +// 'http://www.patternfly.org/pattern-library/widgets/#forms', +// description: description +// }) +// ); stories.addWithInfo('Inline Form', '', () => { const formFieldsKnobs = getInlineFormKnobs(); @@ -77,13 +78,20 @@ stories.addWithInfo('Inline Form', '', () => { )); - return ( + let story = (
{formFields} {formButtons}
); + return inlineTemplate({ + title: 'Inline Form', + documentationLink: DOCUMENTATION_URL.PATTERNFLY_ORG_WIDGETS + '#forms', + reactBootstrapDocumentationLink: + DOCUMENTATION_URL.REACT_BOOTSTRAP_COMPONENT + 'forms/', + story: story + }); }); stories.addWithInfo('Horizontal Form', '', () => { @@ -108,7 +116,7 @@ stories.addWithInfo('Horizontal Form', '', () => { )); - return ( + let story = (
{formFields} @@ -127,6 +135,14 @@ stories.addWithInfo('Horizontal Form', '', () => {
); + + return inlineTemplate({ + title: 'Horizontal Form', + documentationLink: DOCUMENTATION_URL.PATTERNFLY_ORG_WIDGETS + '#forms', + reactBootstrapDocumentationLink: + DOCUMENTATION_URL.REACT_BOOTSTRAP_COMPONENT + 'forms/', + story: story + }); }); stories.addWithInfo('Vertical Form', '', () => { @@ -151,7 +167,7 @@ stories.addWithInfo('Vertical Form', '', () => { )); - return ( + let story = (
@@ -168,6 +184,13 @@ stories.addWithInfo('Vertical Form', '', () => {
); + return inlineTemplate({ + title: 'Vertical Form', + documentationLink: DOCUMENTATION_URL.PATTERNFLY_ORG_WIDGETS + '#forms', + reactBootstrapDocumentationLink: + DOCUMENTATION_URL.REACT_BOOTSTRAP_COMPONENT + 'forms/', + story: story + }); }); stories.addWithInfo('Modal Form', '', () => { @@ -197,7 +220,7 @@ stories.addWithInfo('Modal Form', '', () => { ); - return ( + let story = (