Add local setting to disable swipe-to-change-columns
This commit is contained in:
		
							parent
							
								
									0acd51acdc
								
							
						
					
					
						commit
						7baf15675f
					
				@ -95,6 +95,14 @@ export default class LocalSettingsPage extends React.PureComponent {
 | 
				
			|||||||
          >
 | 
					          >
 | 
				
			||||||
            <FormattedMessage id='settings.navbar_under' defaultMessage='Navbar at the bottom (Mobile only)' />
 | 
					            <FormattedMessage id='settings.navbar_under' defaultMessage='Navbar at the bottom (Mobile only)' />
 | 
				
			||||||
          </LocalSettingsPageItem>
 | 
					          </LocalSettingsPageItem>
 | 
				
			||||||
 | 
					          <LocalSettingsPageItem
 | 
				
			||||||
 | 
					            settings={settings}
 | 
				
			||||||
 | 
					            item={['swipe_to_change_columns']}
 | 
				
			||||||
 | 
					            id='mastodon-settings--swipe_to_change_columns'
 | 
				
			||||||
 | 
					            onChange={onChange}
 | 
				
			||||||
 | 
					          >
 | 
				
			||||||
 | 
					            <FormattedMessage id='settings.swipe_to_change_columns' defaultMessage='Allow swiping to change columns (Mobile only)' />
 | 
				
			||||||
 | 
					          </LocalSettingsPageItem>
 | 
				
			||||||
        </section>
 | 
					        </section>
 | 
				
			||||||
      </div>
 | 
					      </div>
 | 
				
			||||||
    ),
 | 
					    ),
 | 
				
			||||||
 | 
				
			|||||||
@ -46,6 +46,7 @@ export default class ColumnsArea extends ImmutablePureComponent {
 | 
				
			|||||||
  static propTypes = {
 | 
					  static propTypes = {
 | 
				
			||||||
    intl: PropTypes.object.isRequired,
 | 
					    intl: PropTypes.object.isRequired,
 | 
				
			||||||
    columns: ImmutablePropTypes.list.isRequired,
 | 
					    columns: ImmutablePropTypes.list.isRequired,
 | 
				
			||||||
 | 
					    swipeToChangeColumns: PropTypes.bool,
 | 
				
			||||||
    singleColumn: PropTypes.bool,
 | 
					    singleColumn: PropTypes.bool,
 | 
				
			||||||
    children: PropTypes.node,
 | 
					    children: PropTypes.node,
 | 
				
			||||||
  };
 | 
					  };
 | 
				
			||||||
@ -153,7 +154,7 @@ export default class ColumnsArea extends ImmutablePureComponent {
 | 
				
			|||||||
  }
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  render () {
 | 
					  render () {
 | 
				
			||||||
    const { columns, children, singleColumn, intl } = this.props;
 | 
					    const { columns, children, singleColumn, swipeToChangeColumns, intl } = this.props;
 | 
				
			||||||
    const { shouldAnimate } = this.state;
 | 
					    const { shouldAnimate } = this.state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    const columnIndex = getIndex(this.context.router.history.location.pathname);
 | 
					    const columnIndex = getIndex(this.context.router.history.location.pathname);
 | 
				
			||||||
@ -163,7 +164,7 @@ export default class ColumnsArea extends ImmutablePureComponent {
 | 
				
			|||||||
      const floatingActionButton = shouldHideFAB(this.context.router.history.location.pathname) ? null : <Link key='floating-action-button' to='/statuses/new' className='floating-action-button' aria-label={intl.formatMessage(messages.publish)}><i className='fa fa-pencil' /></Link>;
 | 
					      const floatingActionButton = shouldHideFAB(this.context.router.history.location.pathname) ? null : <Link key='floating-action-button' to='/statuses/new' className='floating-action-button' aria-label={intl.formatMessage(messages.publish)}><i className='fa fa-pencil' /></Link>;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
      return columnIndex !== -1 ? [
 | 
					      return columnIndex !== -1 ? [
 | 
				
			||||||
        <ReactSwipeableViews key='content' index={columnIndex} onChangeIndex={this.handleSwipe} onTransitionEnd={this.handleAnimationEnd} animateTransitions={shouldAnimate} springConfig={{ duration: '400ms', delay: '0s', easeFunction: 'ease' }} style={{ height: '100%' }}>
 | 
					        <ReactSwipeableViews key='content' index={columnIndex} onChangeIndex={this.handleSwipe} onTransitionEnd={this.handleAnimationEnd} animateTransitions={shouldAnimate} springConfig={{ duration: '400ms', delay: '0s', easeFunction: 'ease' }} style={{ height: '100%' }} disabled={!swipeToChangeColumns}>
 | 
				
			||||||
          {links.map(this.renderView)}
 | 
					          {links.map(this.renderView)}
 | 
				
			||||||
        </ReactSwipeableViews>,
 | 
					        </ReactSwipeableViews>,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
				
			|||||||
@ -3,6 +3,7 @@ import ColumnsArea from '../components/columns_area';
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
const mapStateToProps = state => ({
 | 
					const mapStateToProps = state => ({
 | 
				
			||||||
  columns: state.getIn(['settings', 'columns']),
 | 
					  columns: state.getIn(['settings', 'columns']),
 | 
				
			||||||
 | 
					  swipeToChangeColumns: state.getIn(['local_settings', 'swipe_to_change_columns']),
 | 
				
			||||||
});
 | 
					});
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default connect(mapStateToProps, null, null, { forwardRef: true })(ColumnsArea);
 | 
					export default connect(mapStateToProps, null, null, { forwardRef: true })(ColumnsArea);
 | 
				
			||||||
 | 
				
			|||||||
@ -9,6 +9,7 @@ const initialState = ImmutableMap({
 | 
				
			|||||||
  layout    : 'auto',
 | 
					  layout    : 'auto',
 | 
				
			||||||
  stretch   : true,
 | 
					  stretch   : true,
 | 
				
			||||||
  navbar_under : false,
 | 
					  navbar_under : false,
 | 
				
			||||||
 | 
					  swipe_to_change_columns: true,
 | 
				
			||||||
  side_arm  : 'none',
 | 
					  side_arm  : 'none',
 | 
				
			||||||
  side_arm_reply_mode : 'keep',
 | 
					  side_arm_reply_mode : 'keep',
 | 
				
			||||||
  show_reply_count : false,
 | 
					  show_reply_count : false,
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user