]> cat aescling's git repositories - mastodon.git/commitdiff
Add local setting to disable swipe-to-change-columns
authorThibaut Girka <thib@sitedethib.com>
Fri, 4 Jan 2019 17:53:27 +0000 (18:53 +0100)
committerThibG <thib@sitedethib.com>
Sat, 5 Jan 2019 20:47:48 +0000 (21:47 +0100)
app/javascript/flavours/glitch/features/local_settings/page/index.js
app/javascript/flavours/glitch/features/ui/components/columns_area.js
app/javascript/flavours/glitch/features/ui/containers/columns_area_container.js
app/javascript/flavours/glitch/reducers/local_settings.js

index 4477a4e80962ff004104c62bdd2615125098070c..16c64ced65372b3b52b6016985a4e15527fc7133 100644 (file)
@@ -95,6 +95,14 @@ export default class LocalSettingsPage extends React.PureComponent {
           >
             <FormattedMessage id='settings.navbar_under' defaultMessage='Navbar at the bottom (Mobile only)' />
           </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>
       </div>
     ),
index 65a63294b53eb3fb8e759102a43d6f43d8c910aa..61f6c0fed12887182ceb1cefa0a51467e9b746de 100644 (file)
@@ -46,6 +46,7 @@ export default class ColumnsArea extends ImmutablePureComponent {
   static propTypes = {
     intl: PropTypes.object.isRequired,
     columns: ImmutablePropTypes.list.isRequired,
+    swipeToChangeColumns: PropTypes.bool,
     singleColumn: PropTypes.bool,
     children: PropTypes.node,
   };
@@ -153,7 +154,7 @@ export default class ColumnsArea extends ImmutablePureComponent {
   }
 
   render () {
-    const { columns, children, singleColumn, intl } = this.props;
+    const { columns, children, singleColumn, swipeToChangeColumns, intl } = this.props;
     const { shouldAnimate } = this.state;
 
     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>;
 
       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)}
         </ReactSwipeableViews>,
 
index 4e26f3017cfbba309b502fc9dfcbf13a3f157def..ba194a00297d1b300e9bfdc62ab8b597cf88d148 100644 (file)
@@ -3,6 +3,7 @@ import ColumnsArea from '../components/columns_area';
 
 const mapStateToProps = state => ({
   columns: state.getIn(['settings', 'columns']),
+  swipeToChangeColumns: state.getIn(['local_settings', 'swipe_to_change_columns']),
 });
 
 export default connect(mapStateToProps, null, null, { forwardRef: true })(ColumnsArea);
index 15239f28ee5605655fa6262bf8b23326ab7a16d1..93a4043285e26a46987df63fd5c8ac40afe6e7e8 100644 (file)
@@ -9,6 +9,7 @@ const initialState = ImmutableMap({
   layout    : 'auto',
   stretch   : true,
   navbar_under : false,
+  swipe_to_change_columns: true,
   side_arm  : 'none',
   side_arm_reply_mode : 'keep',
   show_reply_count : false,