Browse Source

Fix column swiping (#4211)

This fixes broken behavior and enable animation only on swiping.
master
unarist 7 years ago
committed by Eugen Rochko
parent
commit
695439775e
1 changed files with 16 additions and 1 deletions
  1. +16
    -1
      app/javascript/mastodon/features/ui/components/columns_area.js

+ 16
- 1
app/javascript/mastodon/features/ui/components/columns_area.js View File

@ -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…
Cancel
Save