about summary refs log tree commit diff
path: root/app/assets/javascripts/components/features/ui/index.jsx
blob: 655b1e2ee7522d40db3af451994579a67fa8e4c9 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
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';

const UI = React.createClass({

  mixins: [PureRenderMixin],

  render () {
    const layoutBreakpoint = 1024;

    return (
      <div style={{ flex: '0 0 auto', display: 'flex', flexDirection: 'column', width: '100%', height: '100%', background: '#1a1c23' }}>
        <MediaQuery maxWidth={layoutBreakpoint}>
          <TabsBar />
        </MediaQuery>

        <MediaQuery maxWidth={layoutBreakpoint} component={ColumnsArea}>
          {this.props.children}
        </MediaQuery>

        <MediaQuery minWidth={layoutBreakpoint}>
          <ColumnsArea>
            <Compose />
            <HomeTimeline trackScroll={false} />
            <MentionsTimeline trackScroll={false} />
            {this.props.children}
          </ColumnsArea>
        </MediaQuery>

        <NotificationsContainer />
        <LoadingBarContainer style={{ backgroundColor: '#2b90d9', left: '0', top: '0' }} />
        <ModalContainer />
      </div>
    );
  }

});

export default UI;