diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS new file mode 100644 index 0000000..cc3c408 --- /dev/null +++ b/.github/CODEOWNERS @@ -0,0 +1,3 @@ +# Managed through Terraform - do not change directly + +* @moven/frontend-owners diff --git a/src/Row.js b/src/Row.js index 32718a8..b11caa1 100644 --- a/src/Row.js +++ b/src/Row.js @@ -142,10 +142,11 @@ export default class Row extends Component { }, }); - componentWillReceiveProps(nextProps) { - if (!this._active && !shallowEqual(this._location, nextProps.location)) { - const animated = !this._active && nextProps.animated; - this._relocate(nextProps.location, animated); + componentDidUpdate() { + const {animated, location} = this.props; + + if (!this._active && !shallowEqual(this._location, location)) { + this._relocate(location, !this._active && animated); } } diff --git a/src/SortableList.js b/src/SortableList.js index 78cd576..b5900a7 100644 --- a/src/SortableList.js +++ b/src/SortableList.js @@ -32,7 +32,7 @@ export default class SortableList extends Component { manuallyActivateRows: PropTypes.bool, keyboardShouldPersistTaps: PropTypes.oneOf(['never', 'always', 'handled']), scrollEventThrottle: PropTypes.number, - decelerationRate: PropTypes.oneOf([PropTypes.string, PropTypes.number]), + decelerationRate: PropTypes.oneOfType([PropTypes.string, PropTypes.number]), pagingEnabled: PropTypes.bool, nestedScrollEnabled: PropTypes.bool, disableIntervalMomentum: PropTypes.bool, @@ -88,7 +88,7 @@ export default class SortableList extends Component { scrollEnabled: this.props.scrollEnabled }; - componentWillMount() { + componentDidMount() { this.state.order.forEach((key) => { this._rowsLayouts[key] = new Promise((resolve) => { this._resolveRowLayout[key] = resolve; @@ -100,20 +100,20 @@ export default class SortableList extends Component { this._resolveHeaderLayout = resolve; }); } + if (this.props.renderFooter && !this.props.horizontal) { this._footerLayout = new Promise((resolve) => { this._resolveFooterLayout = resolve; }); } - } - componentDidMount() { this._onUpdateLayouts(); } - componentWillReceiveProps(nextProps) { - const {data, order} = this.state; - let {data: nextData, order: nextOrder} = nextProps; + componentDidUpdate(prevProps, prevState) { + const {data, order, scrollEnabled} = this.state; + let {data: nextData, order: nextOrder} = this.props; + const {data: prevData} = prevState; if (data && nextData && !shallowEqual(data, nextData)) { nextOrder = nextOrder || Object.keys(nextData) @@ -143,11 +143,6 @@ export default class SortableList extends Component { } else if (order && nextOrder && !shallowEqual(order, nextOrder)) { this.setState({order: nextOrder}); } - } - - componentDidUpdate(prevProps, prevState) { - const {data, scrollEnabled} = this.state; - const {data: prevData} = prevState; if (data && prevData && !shallowEqual(data, prevData)) { this._onUpdateLayouts();