Fix column swiping (#4211)
This fixes broken behavior and enable animation only on swiping.
This commit is contained in:
parent
9c1791c546
commit
55313a0102
1 changed files with 16 additions and 1 deletions
|
@ -33,8 +33,22 @@ export default class ColumnsArea extends ImmutablePureComponent {
|
||||||
children: PropTypes.node,
|
children: PropTypes.node,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
state = {
|
||||||
|
shouldAnimate: false,
|
||||||
|
}
|
||||||
|
|
||||||
|
componentWillReceiveProps() {
|
||||||
|
this.setState({ shouldAnimate: false });
|
||||||
|
}
|
||||||
|
|
||||||
|
componentDidMount() {
|
||||||
|
this.lastIndex = getIndex(this.context.router.history.location.pathname);
|
||||||
|
this.setState({ shouldAnimate: true });
|
||||||
|
}
|
||||||
|
|
||||||
componentDidUpdate() {
|
componentDidUpdate() {
|
||||||
this.lastIndex = getIndex(this.context.router.history.location.pathname);
|
this.lastIndex = getIndex(this.context.router.history.location.pathname);
|
||||||
|
this.setState({ shouldAnimate: true });
|
||||||
}
|
}
|
||||||
|
|
||||||
handleSwipe = (index) => {
|
handleSwipe = (index) => {
|
||||||
|
@ -74,9 +88,10 @@ export default class ColumnsArea extends ImmutablePureComponent {
|
||||||
|
|
||||||
render () {
|
render () {
|
||||||
const { columns, children, singleColumn } = this.props;
|
const { columns, children, singleColumn } = this.props;
|
||||||
|
const { shouldAnimate } = this.state;
|
||||||
|
|
||||||
const columnIndex = getIndex(this.context.router.history.location.pathname);
|
const columnIndex = getIndex(this.context.router.history.location.pathname);
|
||||||
const shouldAnimate = Math.abs(this.lastIndex - columnIndex) === 1;
|
this.pendingIndex = null;
|
||||||
|
|
||||||
if (singleColumn) {
|
if (singleColumn) {
|
||||||
return columnIndex !== -1 ? (
|
return columnIndex !== -1 ? (
|
||||||
|
|
Loading…
Reference in a new issue