|
1 | | -import React, { useState } from 'react'; |
2 | | -import PropTypes from 'prop-types'; |
| 1 | +import React from 'react'; |
3 | 2 | import { storiesOf } from '@storybook/react'; |
4 | | -import { SketchPicker } from 'react-color'; |
5 | | -import { Panel as ColorPicker } from 'rc-color-picker'; |
6 | | -import { AnglePicker } from '../src'; |
7 | | -import UseCase from './UseCase'; |
| 3 | +import { SketchPickerStory, ColorPickerStory, DefaultPickerStory } from './GradientPicker'; |
| 4 | +import FullExample from './FullExample'; |
| 5 | +import AnglePickerStory from './AnglePicker'; |
8 | 6 | import './Story.css'; |
9 | | -import 'rc-color-picker/assets/index.css'; |
10 | | - |
11 | | -const addOpacityToHex = (color, opacity = 1) => { |
12 | | - if (opacity === 1 || color.length > 9) { |
13 | | - return color; |
14 | | - } |
15 | | - |
16 | | - return color + Math.floor(opacity * 255).toString(16); |
17 | | -}; |
18 | | - |
19 | | -const WrapperPropTypes = { |
20 | | - onSelect: PropTypes.func |
21 | | -}; |
22 | | - |
23 | | -const WrappedSketchPicker = ({ onSelect, ...rest }) => ( |
24 | | - <SketchPicker {...rest} |
25 | | - color={addOpacityToHex(rest.color, rest.opacity)} |
26 | | - onChange={c => { |
27 | | - onSelect(c.hex, c.rgb.a); |
28 | | - }}/> |
29 | | -); |
30 | | - |
31 | | -WrappedSketchPicker.propTypes = WrapperPropTypes; |
32 | | - |
33 | | -const WrappedColorPicker = ({ onSelect, ...rest }) => ( |
34 | | - <ColorPicker {...rest} onChange={c => { |
35 | | - onSelect(c.color, c.alpha / 100); |
36 | | - }}/> |
37 | | -); |
38 | | - |
39 | | -WrappedColorPicker.propTypes = WrapperPropTypes; |
40 | 7 |
|
41 | 8 | storiesOf('Gradient Picker', module) |
42 | | - .add('React Color Picker', () => ( |
43 | | - <UseCase palette={[ |
44 | | - { offset: '0.00', color: '#eef10b' }, |
45 | | - { offset: '0.49', color: '#d78025' }, |
46 | | - { offset: '1.00', color: '#7e20cf' } |
47 | | - ]} link={'https://github.com/react-component/color-picker'} title={'rc-color-picker'} ColorPicker={WrappedSketchPicker}/> |
48 | | - )) |
49 | | - .add('React Color', () => ( |
50 | | - <UseCase palette={[ |
51 | | - { offset: '0.00', color: '#7e20cf' }, |
52 | | - { offset: '0.42', color: '#d0021b' }, |
53 | | - { offset: '1.00', color: '#00ccff' } |
54 | | - ]} link={'https://github.com/casesandberg/react-color'} title={'react-color'} ColorPicker={WrappedColorPicker}/> |
55 | | - )) |
56 | | - .add('Default Color Picker', () => ( |
57 | | - <UseCase title="Default Picker" palette={[{ offset: '0', color: '#FF0000' }, { offset: '0.3', color: '#00FF00' }, { offset: '1', color: '#0000FF' }]}/> |
58 | | - )); |
| 9 | + .add('React Color Picker', SketchPickerStory) |
| 10 | + .add('React Color', ColorPickerStory) |
| 11 | + .add('Full Example', FullExample) |
| 12 | + .add('Default Color Picker', DefaultPickerStory); |
59 | 13 |
|
60 | 14 | storiesOf('Angle Picker', module) |
61 | | - .add('Default', () => { |
62 | | - const [localAngle, setLocalAngle] = useState(0); |
63 | | - |
64 | | - const background = `linear-gradient( |
65 | | - ${localAngle}deg, |
66 | | - rgb(238, 241, 11) 0%, rgb(208, 2, 27) 51.1%, |
67 | | - rgb(126, 32, 207) 100%)`; |
68 | | - return ( |
69 | | - <div className="aps"> |
70 | | - <AnglePicker angle={localAngle} onChange={setLocalAngle}/> |
71 | | - <h4>Background preview for {localAngle} Angle</h4> |
72 | | - <div className="preview" style={{ background }}/> |
73 | | - </div> |
74 | | - ); |
75 | | - }); |
| 15 | + .add('Default', AnglePickerStory); |
76 | 16 |
|
77 | 17 |
|
0 commit comments