import React from 'react'; import { storiesOf } from '@storybook/react'; import { select, text } from '@storybook/addon-knobs'; import { withHorizontallyCenteredStory } from '../../utils/storybook/withCenteredStory'; import { GraphWithLegend } from './GraphWithLegend'; import { mockGraphWithLegendData } from './mockGraphWithLegendData'; import { action } from '@storybook/addon-actions'; import { LegendPlacement, LegendDisplayMode } from '../Legend/Legend'; const GraphWithLegendStories = storiesOf('Visualizations/Graph/GraphWithLegend', module); GraphWithLegendStories.addDecorator(withHorizontallyCenteredStory); const getStoriesKnobs = () => { const containerWidth = select( 'Container width', { Small: '200px', Medium: '500px', 'Full width': '100%', }, '100%' ); const containerHeight = select( 'Container height', { Small: '200px', Medium: '400px', 'Full height': '100%', }, '400px' ); const rightAxisSeries = text('Right y-axis series, i.e. A,C', ''); const legendPlacement = select( 'Legend placement', { under: 'under', right: 'right', }, 'under' ); const renderLegendAsTable = select( 'Render legend as', { list: false, table: true, }, false ); return { containerWidth, containerHeight, rightAxisSeries, legendPlacement, renderLegendAsTable, }; }; GraphWithLegendStories.add('default', () => { const { containerWidth, containerHeight, rightAxisSeries, legendPlacement, renderLegendAsTable } = getStoriesKnobs(); const props = mockGraphWithLegendData({ onSeriesColorChange: action('Series color changed'), onSeriesAxisToggle: action('Series y-axis changed'), displayMode: renderLegendAsTable ? LegendDisplayMode.Table : LegendDisplayMode.List, }); const series = props.series.map(s => { if ( rightAxisSeries .split(',') .map(s => s.trim()) .indexOf(s.label.split('-')[0]) > -1 ) { s.yAxis = { index: 2 }; } return s; }); return (
,
); });