diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2016-11-21 10:03:55 +0100 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2016-11-21 10:03:55 +0100 |
commit | e616ffc5d60acafb67dadf90e396226d408d0cda (patch) | |
tree | 1be2e4094a5b29663f599f379c1bf9d2808acb51 | |
parent | 29b12f9e0abb5031b368f2815d6408705e0498c6 (diff) |
Fix responsive layout breakpoint, replace mentions column with notifications
3 files changed, 39 insertions, 25 deletions
diff --git a/app/assets/javascripts/components/features/notifications/index.jsx b/app/assets/javascripts/components/features/notifications/index.jsx index 9c8b07dea..00feeece7 100644 --- a/app/assets/javascripts/components/features/notifications/index.jsx +++ b/app/assets/javascripts/components/features/notifications/index.jsx @@ -22,7 +22,8 @@ const Notifications = React.createClass({ propTypes: { notifications: ImmutablePropTypes.list.isRequired, - dispatch: React.PropTypes.func.isRequired + dispatch: React.PropTypes.func.isRequired, + trackScroll: React.PropTypes.bool }, mixins: [PureRenderMixin], @@ -41,19 +42,31 @@ const Notifications = React.createClass({ }, render () { - const { intl, notifications } = this.props; - - return ( - <Column icon='bell' heading={intl.formatMessage(messages.title)}> - <ScrollContainer scrollKey='notifications'> - <div className='scrollable' onScroll={this.handleScroll}> - <div> - {notifications.map(item => <NotificationContainer key={item.get('id')} notification={item} accountId={item.get('account')} />)} - </div> - </div> - </ScrollContainer> - </Column> + const { intl, notifications, trackScroll } = this.props; + + const scrollableArea = ( + <div className='scrollable' onScroll={this.handleScroll}> + <div> + {notifications.map(item => <NotificationContainer key={item.get('id')} notification={item} accountId={item.get('account')} />)} + </div> + </div> ); + + if (trackScroll) { + return ( + <Column icon='bell' heading={intl.formatMessage(messages.title)}> + <ScrollContainer scrollKey='notifications'> + {scrollableArea} + </ScrollContainer> + </Column> + ); + } else { + return ( + <Column icon='bell' heading={intl.formatMessage(messages.title)}> + {scrollableArea} + </Column> + ); + } } }); diff --git a/app/assets/javascripts/components/features/ui/components/tabs_bar.jsx b/app/assets/javascripts/components/features/ui/components/tabs_bar.jsx index 8313d8826..868ebe00a 100644 --- a/app/assets/javascripts/components/features/ui/components/tabs_bar.jsx +++ b/app/assets/javascripts/components/features/ui/components/tabs_bar.jsx @@ -31,7 +31,7 @@ const TabsBar = () => { <div style={outerStyle}> <Link style={tabStyle} activeStyle={tabActiveStyle} to='/statuses/new'><i className='fa fa-fw fa-pencil' /> <FormattedMessage id='tabs_bar.compose' defaultMessage='Compose' /></Link> <Link style={tabStyle} activeStyle={tabActiveStyle} to='/timelines/home'><i className='fa fa-fw fa-home' /> <FormattedMessage id='tabs_bar.home' defaultMessage='Home' /></Link> - <Link style={tabStyle} activeStyle={tabActiveStyle} to='/timelines/mentions'><i className='fa fa-fw fa-at' /> <FormattedMessage id='tabs_bar.mentions' defaultMessage='Mentions' /></Link> + <Link style={tabStyle} activeStyle={tabActiveStyle} to='/notifications'><i className='fa fa-fw fa-bell' /> <FormattedMessage id='tabs_bar.notifications' defaultMessage='Notifications' /></Link> <Link style={tabStyle} activeStyle={tabActiveStyle} to='/timelines/public'><i className='fa fa-fw fa-globe' /> <FormattedMessage id='tabs_bar.public' defaultMessage='Public' /></Link> </div> ); diff --git a/app/assets/javascripts/components/features/ui/index.jsx b/app/assets/javascripts/components/features/ui/index.jsx index 655b1e2ee..9b5469bbd 100644 --- a/app/assets/javascripts/components/features/ui/index.jsx +++ b/app/assets/javascripts/components/features/ui/index.jsx @@ -1,13 +1,14 @@ -import ColumnsArea from './components/columns_area'; +import ColumnsArea from './components/columns_area'; import NotificationsContainer from './containers/notifications_container'; -import PureRenderMixin from 'react-addons-pure-render-mixin'; -import LoadingBarContainer from './containers/loading_bar_container'; -import HomeTimeline from '../home_timeline'; -import MentionsTimeline from '../mentions_timeline'; -import Compose from '../compose'; -import MediaQuery from 'react-responsive'; -import TabsBar from './components/tabs_bar'; -import ModalContainer from './containers/modal_container'; +import PureRenderMixin from 'react-addons-pure-render-mixin'; +import LoadingBarContainer from './containers/loading_bar_container'; +import HomeTimeline from '../home_timeline'; +import MentionsTimeline from '../mentions_timeline'; +import Compose from '../compose'; +import MediaQuery from 'react-responsive'; +import TabsBar from './components/tabs_bar'; +import ModalContainer from './containers/modal_container'; +import Notifications from '../notifications'; const UI = React.createClass({ @@ -26,11 +27,11 @@ const UI = React.createClass({ {this.props.children} </MediaQuery> - <MediaQuery minWidth={layoutBreakpoint}> + <MediaQuery minWidth={layoutBreakpoint + 1}> <ColumnsArea> <Compose /> <HomeTimeline trackScroll={false} /> - <MentionsTimeline trackScroll={false} /> + <Notifications trackScroll={false} /> {this.props.children} </ColumnsArea> </MediaQuery> |