@appearhere/bloom
Version:
Appear Here's pattern library and styleguide
88 lines (82 loc) • 2.23 kB
JavaScript
import React from 'react';
import { storiesOf, action } from '@storybook/react';
import { withKnobs, number } from '@storybook/addon-knobs';
import InputRange from './InputRange';
import transformStepValues from './transformStepValues';
import InputRangeWithHistogram from './InputRangeWithHistogram';
const stories = storiesOf('FormComponents', module);
stories.addDecorator(withKnobs);
const bucket = [
0,
2,
4,
8,
16,
32,
64,
];
stories
.add('Default InputRange', () => (
<InputRange
minValue={0}
maxValue={10}
value={number('value', 4)}
name="Simple range input"
onChange={action('Change...')}
onChangeComplete={action('Change complete...')}
/>
))
.add('Multi InputRange', () => (
<InputRange
minValue={0}
maxValue={10}
value={{
min: number('min', 0),
max: number('max', 10),
}}
name="Simple range input"
onChange={action('Change...')}
onChangeComplete={action('Change complete...')}
/>
))
.add('Non-linear default InputRange', () => {
const NonLinearRangeInput = transformStepValues(InputRange)(bucket);
return (
<NonLinearRangeInput
minValue={bucket[0]}
maxValue={bucket[6]}
value={bucket[number('value', 1)]}
name="Simple range input"
onChange={action('Change...')}
onChangeComplete={action('Change complete...')}
/>
);
})
.add('Non-linear multi InputRange', () => {
const NonLinearRangeInput = transformStepValues(InputRange)(bucket);
return (
<NonLinearRangeInput
minValue={bucket[0]}
maxValue={bucket[6]}
value={{
min: bucket[number('min', 1)],
max: bucket[number('max', 5)],
}}
name="Simple range input"
onChange={action('Change...')}
onChangeComplete={action('Change complete...')}
/>
);
})
.add('With histogram', () => (
<InputRangeWithHistogram
minValue={bucket[0]}
maxValue={bucket[6]}
value={{
min: bucket[number('min', 1)],
max: bucket[number('max', 5)],
}}
name="Range input with histogram"
data={[10, 35, 20, 3, 5, 37, 24]}
/>
));