@@ -6,25 +6,7 @@ import { StoreState } from '../reducers'
66import { ChangeTheme } from '../actions'
77import { push } from 'react-router-redux'
88
9- import Toggle from 'material-ui/Toggle' ;
10- import Drawer from 'material-ui/Drawer' ;
11- import AppBar from 'material-ui/AppBar' ;
12-
13- import IconMenu from 'material-ui/IconMenu' ;
14- import IconButton from 'material-ui/IconButton' ;
15- import FontIcon from 'material-ui/FontIcon' ;
16- import NavigationExpandMoreIcon from 'material-ui/svg-icons/navigation/expand-more' ;
17- import MenuItem from 'material-ui/MenuItem' ;
18- import DropDownMenu from 'material-ui/DropDownMenu' ;
19- import RaisedButton from 'material-ui/RaisedButton' ;
20- import FlatButton from 'material-ui/FlatButton' ;
21- import { Toolbar , ToolbarGroup , ToolbarSeparator , ToolbarTitle } from 'material-ui/Toolbar' ;
22-
23-
24- interface MainState {
25- sideBarOpen ?:boolean
26- value ?:any
27- }
9+ import { TopBar } from '../components/topBar'
2810
2911interface MainProps {
3012dispatch :Dispatch < any > ;
@@ -37,104 +19,34 @@ function mapStateToProps(state: StoreState) {
3719} ;
3820}
3921
40- class Main extends React . Component < MainProps , MainState > {
22+ class Main extends React . Component < MainProps , any > {
4123
4224constructor ( ) {
4325super ( ) ;
4426
45- this . state = {
46- sideBarOpen :false
47- }
48-
49- this . handleToggleSideMenu = this . handleToggleSideMenu . bind ( this ) ;
27+ this . toggleTheme = this . toggleTheme . bind ( this ) ;
5028this . logout = this . logout . bind ( this ) ;
5129}
5230
53- handleToggleSideMenu ( open :boolean ) {
54- this . setState ( {
55- sideBarOpen :open
56- } ) ;
57- }
5831
5932logout ( ) {
6033localStorage . removeItem ( "auth" ) ;
6134this . props . dispatch ( push ( "dashboard" ) ) ;
6235}
6336
64- render ( ) {
65- var toolbar =
66- < Toolbar >
67- < ToolbarGroup firstChild = { true } >
68- < DropDownMenu value = { this . state . value } >
69- < MenuItem value = { 1 } primaryText = "All Broadcasts" />
70- < MenuItem value = { 2 } primaryText = "All Voice" />
71- < MenuItem value = { 3 } primaryText = "All Text" />
72- < MenuItem value = { 4 } primaryText = "Complete Voice" />
73- < MenuItem value = { 5 } primaryText = "Complete Text" />
74- < MenuItem value = { 6 } primaryText = "Active Voice" />
75- < MenuItem value = { 7 } primaryText = "Active Text" />
76- </ DropDownMenu >
77- </ ToolbarGroup >
78- < ToolbarGroup >
79- < ToolbarTitle text = "Options" />
80- < FontIcon className = "muidocs-icon-custom-sort" />
81- < ToolbarSeparator />
82- < RaisedButton label = "Create Broadcast" />
83- < IconMenu
84- iconButtonElement = {
85- < IconButton touch = { true } >
86- < NavigationExpandMoreIcon />
87- </ IconButton >
88- }
89- >
90- < MenuItem primaryText = "Download" />
91- < MenuItem primaryText = "More Info" />
92- </ IconMenu >
93- </ ToolbarGroup >
94- </ Toolbar > ;
95-
96- var sideMenu =
97- < Drawer
98- docked = { false }
99- width = { 300 }
100- open = { this . state . sideBarOpen }
101- onRequestChange = { this . handleToggleSideMenu }
102- >
103- < MenuItem onTouchTap = { ( ) => this . handleToggleSideMenu ( false ) } > Menu Item</ MenuItem >
104- < MenuItem onTouchTap = { ( ) => this . handleToggleSideMenu ( false ) } > Menu Item 2</ MenuItem >
105- </ Drawer >
106-
107- var swithTheme =
108- < Toggle
109- onToggle = { ( ) => { this . props . dispatch ( new ChangeTheme ( ) ) } }
110- label = { "dark:" + this . props . useDarkTheme }
111- toggled = { this . props . useDarkTheme }
112- /> ;
113-
114- var logoutButton =
115- < FlatButton
116- onClick = { this . logout }
117- label = "logout"
118- />
119-
120- var appBarRightElement =
121- < div style = { { display :"inline-block" } } >
122- { swithTheme }
123- { logoutButton }
124- </ div >
37+ toggleTheme ( ) {
38+ this . props . dispatch ( new ChangeTheme ( ) ) ;
39+ }
12540
126- // var childProps = {
127- // this.props.children && React.cloneElement(this.props.children, {
128- // onToggleTheme: this.handleToggleTheme
129- // })
130- // };
41+ render ( ) {
13142
13243return (
13344< div >
134- { sideMenu }
135- < AppBar iconElementRight = { appBarRightElement } onLeftIconButtonTouchTap = { ( ) => this . handleToggleSideMenu ( true ) } zDepth = { 0 } />
136- { toolbar }
137- { swithTheme }
45+ < TopBar
46+ toggleTheme = { this . toggleTheme }
47+ useDarkTheme = { this . props . useDarkTheme }
48+ logout = { this . logout }
49+ />
13850{ this . props . children }
13951</ div >
14052) ;