if (singleColumn) {
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)}><Icon id='pencil' /></Link>;
- return columnIndex !== -1 ? [
- <TabsBar key='tabs' />,
-
+ const content = 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%' }}>
{links.map(this.renderView)}
- </ReactSwipeableViews>,
+ </ReactSwipeableViews>
+ ) : (
+ <div key='content' className='columns-area columns-area--mobile'>{children}</div>
+ );
+
+ return (
+ <div className='columns-area__panels'>
+ <div className='columns-area__panels__pane' />
- floatingActionButton,
- ] : [
- <TabsBar key='tabs' />,
+ <div className='columns-area__panels__main'>
+ <TabsBar key='tabs' />
+ {content}
+ </div>
- <div key='content' className='columns-area columns-area--mobile'>{children}</div>,
+ <div className='columns-area__panels__pane' />
- floatingActionButton,
- ];
+ {floatingActionButton}
+ </div>
+ );
}
return (
&.unscrollable {
overflow-x: hidden;
}
+
+ &__panels {
+ display: flex;
+ justify-content: center;
+ width: 100%;
+ height: 100%;
+
+ &__pane {
+ flex: 1 1 auto;
+ height: 100%;
+ overflow: hidden;
+ pointer-events: none;
+ display: flex;
+ justify-content: flex-end;
+
+ &__inner {
+ pointer-events: auto;
+ height: 100%;
+ }
+ }
+
+ &__main {
+ box-sizing: border-box;
+ width: 100%;
+ max-width: 600px;
+ display: flex;
+ flex-direction: column;
+
+ @media screen and (min-width: 360px) {
+ padding: 0 10px;
+ }
+ }
+ }
}
.react-swipeable-view-container {
.columns-area--mobile {
flex-direction: column;
width: 100%;
- max-width: 600px;
margin: 0 auto;
.column,
}
@media screen and (min-width: 360px) {
- padding: 10px;
+ padding: 10px 0;
}
@media screen and (min-width: 630px) {
.tabs-bar {
margin: 10px auto;
margin-bottom: 0;
- width: calc(100% - 20px);
- max-width: 600px;
+ width: 100%;
}
.react-swipeable-view-container .columns-area--mobile {
&:active {
background: lighten($ui-highlight-color, 7%);
}
+
+ @media screen and (min-width: 630px) {
+ display: none;
+ }
}
.account__header__content {