Skip to content

Commit aedf47d

Browse files
authored
[FEAT] Popover picker type as prop
2 parents a10f15d + 11420aa commit aedf47d

File tree

5 files changed

+18
-9
lines changed

5 files changed

+18
-9
lines changed

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-linear-gradient-picker",
3-
"version": "3.0.0",
3+
"version": "3.0.1",
44
"description": "React linear gradient picker",
55
"main": "dist/index.js",
66
"scripts": {

src/components/GradientPickerPopover/index.js

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,9 +21,14 @@ const GradientPickerPopover = ({
2121
showGradientTypePicker = true,
2222
angle,
2323
setAngle,
24+
gradientType: controlledGradientType,
25+
setGradientType: setControlledGradientType,
2426
...gradientPickerProps
2527
}) => {
26-
const [gradientType, setGradientType] = useState(GRADIENT_TYPES.LINEAR);
28+
const [internalGradientType, setInternalGradientType] = useState(GRADIENT_TYPES.LINEAR);
29+
const gradientType = controlledGradientType || internalGradientType;
30+
const setGradientType = setControlledGradientType || setInternalGradientType;
31+
2732
const togglePicker = () => setOpen(!open);
2833
const { background } = getGradientPreview(palette, angle, gradientType);
2934

@@ -56,4 +61,6 @@ const GradientPickerPopover = ({
5661

5762
GradientPickerPopover.propTypes = GRADIENT_PICKER_POPOVER_PROP_TYPES;
5863

64+
export { GRADIENT_TYPES };
65+
5966
export default GradientPickerPopover;

src/components/GradientTypePicker/index.js

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import React from 'react';
22
import { func, string } from 'prop-types';
33
import './index.scss';
44

5-
const GRADIENT_TYPES = {
5+
export const GRADIENT_TYPES = {
66
LINEAR: 'linear',
77
RADIAL: 'radial'
88
};
@@ -28,6 +28,4 @@ GradientTypePicker.propTypes = {
2828
onGradientTypeChange: func
2929
};
3030

31-
export { GRADIENT_TYPES };
32-
3331
export default GradientTypePicker;

src/index.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
import { getGradientPreview } from './lib';
22
import AnglePicker from './components/AnglePicker';
33
import GradientPicker from './components/GradientPicker';
4-
import GradientPickerPopover from './components/GradientPickerPopover';
4+
import GradientPickerPopover, { GRADIENT_TYPES } from './components/GradientPickerPopover';
55

66
export {
77
GradientPicker,
88
GradientPickerPopover,
99
AnglePicker,
10-
getGradientPreview
10+
getGradientPreview,
11+
GRADIENT_TYPES
1112
};

stories/Popover/index.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import React, { useState } from 'react';
22
import PropTypes from 'prop-types';
33
import { SketchPicker } from 'react-color';
4-
import GradientPickerPopover from '../../src/components/GradientPickerPopover';
4+
import GradientPickerPopover, { GRADIENT_TYPES } from '../../src/components/GradientPickerPopover';
55
import './index.css';
66

77
/**
@@ -43,6 +43,7 @@ const initialPallet = [
4343
const PopoverStory = ({ showAngle, showType}) => {
4444
const [open, setOpen] = useState(false);
4545
const [angle, setAngle] = useState(90);
46+
const [gradientType, setGradientType] = useState(GRADIENT_TYPES.LINEAR);
4647
const [palette, setPalette] = useState(initialPallet);
4748

4849
return (
@@ -57,7 +58,9 @@ const PopoverStory = ({ showAngle, showType}) => {
5758
maxStops: 3,
5859
paletteHeight: 32,
5960
palette,
60-
onPaletteChange: setPalette
61+
onPaletteChange: setPalette,
62+
gradientType,
63+
setGradientType
6164
}}>
6265
<WrappedSketchPicker/>
6366
</GradientPickerPopover>

0 commit comments

Comments
 (0)