Skip to content

Commit 24d21db

Browse files
Infra/color slider group remove unsafe (#944)
* GradientSlider - wrap in 'asBaseComponent' hoc * updating 'prevColor' on state * ColorSliderGroup - wrap with 'asBaseComponent' hoc * SliderGroup - removing UNSAFE method * removing commented code * removing 'forwardedRef' * removing android/gradlew.bat * remove expoDemo/android/gradlew.bat Co-authored-by: Ethan Sharabi <[email protected]>
1 parent 7615de1 commit 24d21db

File tree

3 files changed

+28
-37
lines changed

3 files changed

+28
-37
lines changed

src/components/slider/ColorSliderGroup.js

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,17 @@
11
import _ from 'lodash';
22
import PropTypes from 'prop-types';
3-
import React from 'react';
3+
import React, {PureComponent} from 'react';
4+
import {asBaseComponent} from '../../commons';
45
import GradientSlider from './GradientSlider';
56
import SliderGroup from './context/SliderGroup';
67
import Text from '../text';
7-
import {PureBaseComponent} from '../../commons';
88

99

1010
/**
1111
* @description: A Gradient Slider component
1212
* @example: https://github.com/wix/react-native-ui-lib/blob/feat/new_components/demo/src/screens/componentScreens/SliderScreen.js
1313
*/
14-
export default class ColorSliderGroup extends PureBaseComponent {
14+
class ColorSliderGroup extends PureComponent {
1515
static displayName = 'ColorSliderGroup';
1616

1717
static propTypes = {
@@ -54,25 +54,22 @@ export default class ColorSliderGroup extends PureBaseComponent {
5454
initialColor: this.props.initialColor
5555
}
5656

57-
// static getDerivedStateFromProps(nextProps, prevState) {
58-
// if (prevState.initialColor !== nextProps.initialColor) {
59-
// return {initialColor: nextProps.initialColor};
60-
// }
61-
// return null;
62-
// }
63-
64-
UNSAFE_componentWillReceiveProps(nextProps) {
65-
if (this.state.initialColor !== nextProps.initialColor) {
66-
return {initialColor: nextProps.initialColor};
57+
static getDerivedStateFromProps(nextProps, prevState) {
58+
if (prevState.initialColor !== nextProps.initialColor) {
59+
return {
60+
initialColor: nextProps.initialColor
61+
};
6762
}
63+
return null;
6864
}
6965

7066
onValueChange = (value) => {
7167
_.invoke(this.props, 'onValueChange', value);
7268
}
7369

7470
renderSlider = (type) => {
75-
const {sliderContainerStyle, showLabels, labelsStyle, accessible, labels} = this.getThemeProps();
71+
const {sliderContainerStyle, showLabels, labelsStyle, accessible, labels} = this.props;
72+
7673
return (
7774
<>
7875
{showLabels && (
@@ -98,3 +95,5 @@ export default class ColorSliderGroup extends PureBaseComponent {
9895
);
9996
}
10097
}
98+
99+
export default asBaseComponent(ColorSliderGroup);

src/components/slider/GradientSlider.js

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import _ from 'lodash';
22
import PropTypes from 'prop-types';
33
import tinycolor from 'tinycolor2';
4-
import React from 'react';
4+
import React, {Component} from 'react';
55
import {HueGradient, LightnessGradient, SaturationGradient, Gradient} from 'react-native-color';
66
import {Colors} from '../../style';
7-
import {BaseComponent} from '../../commons';
7+
import {asBaseComponent} from '../../commons';
88
import Slider from './index';
99
import asSliderGroupChild from './context/asSliderGroupChild';
1010

@@ -20,7 +20,7 @@ const GRADIENT_TYPES = {
2020
* @description: A Gradient Slider component
2121
* @example: https://github.com/wix/react-native-ui-lib/blob/feat/new_components/demo/src/screens/componentScreens/SliderScreen.js
2222
*/
23-
class GradientSlider extends BaseComponent {
23+
class GradientSlider extends Component {
2424
static displayName = 'GradientSlider';
2525

2626
static propTypes = {
@@ -53,14 +53,19 @@ class GradientSlider extends BaseComponent {
5353
super(props);
5454

5555
this.state = {
56+
prevColor: props.color,
5657
color: props.color ? Colors.getHSL(props.color) : undefined
5758
};
5859
}
5960

60-
UNSAFE_componentWillReceiveProps(nextProps) {
61-
if (this.props.color !== nextProps.color) {
62-
this.setState({color: Colors.getHSL(nextProps.color)});
61+
static getDerivedStateFromProps(nextProps, prevState) {
62+
if (prevState.prevColor !== nextProps.color) {
63+
return {
64+
color: Colors.getHSL(nextProps.color),
65+
prevColor: Colors.getHSL(nextProps.color)
66+
};
6367
}
68+
return null;
6469
}
6570

6671
getColor() {
@@ -88,7 +93,7 @@ class GradientSlider extends BaseComponent {
8893

8994
renderHueGradient = () => {
9095
const {gradientSteps} = this.props;
91-
96+
9297
return (
9398
<HueGradient gradientSteps={gradientSteps}/>
9499
);
@@ -180,7 +185,7 @@ class GradientSlider extends BaseComponent {
180185
}
181186

182187
return (
183-
<Slider
188+
<Slider
184189
renderTrack={renderTrack}
185190
step={step}
186191
maximumValue={maximumValue}
@@ -195,4 +200,4 @@ class GradientSlider extends BaseComponent {
195200
}
196201
}
197202

198-
export default asSliderGroupChild(GradientSlider);
203+
export default asBaseComponent(asSliderGroupChild(GradientSlider));

src/components/slider/context/SliderGroup.js

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,9 @@ export default class SliderGroup extends Component {
2121
};
2222
}
2323

24-
// static getDerivedStateFromProps(nextProps, prevState) {
25-
// if (nextProps.color !== Colors.getHexString(prevState.value)) {
26-
// return {value: Colors.getHSL(nextProps.color)};
27-
// }
28-
// return null;
29-
// }
30-
31-
UNSAFE_componentWillReceiveProps(nextProps) {
32-
if (nextProps.color !== Colors.getHexString(this.state.value)) {
33-
return {value: Colors.getHSL(nextProps.color)};
34-
}
35-
}
36-
3724
getContextProviderValue() {
3825
return {
39-
value: this.state.value,
26+
value: this.state.value,
4027
setValue: this.setValue
4128
};
4229
}

0 commit comments

Comments
 (0)