1
1
import React , { Component , PropTypes } from 'react'
2
2
import { connect } from 'react-redux'
3
3
4
- import { getModeIcon } from '../../util/itinerary'
5
-
6
4
import { setMode } from '../../actions/form'
5
+ import ModeButton from './mode-button'
7
6
8
7
class ModesPanel extends Component {
9
8
static propTypes = {
@@ -14,7 +13,7 @@ class ModesPanel extends Component {
14
13
}
15
14
16
15
render ( ) {
17
- const { icons, modeGroups, queryModes} = this . props
16
+ const { icons, modeGroups, queryModes, setMode } = this . props
18
17
19
18
return (
20
19
< div className = 'modes-panel' >
@@ -24,26 +23,13 @@ class ModesPanel extends Component {
24
23
< div className = 'group-name' > { group . name } </ div >
25
24
{ group . modes . map ( mode => {
26
25
const modeSelected = queryModes . indexOf ( mode ) !== - 1
27
- return (
28
- < div key = { mode } className = 'mode-icon-highlight' >
29
- < button
30
- onClick = { ( ) => {
31
- if ( modeSelected ) {
32
- this . props . setMode ( queryModes . filter ( m => m !== mode ) . join ( ',' ) )
33
- } else {
34
- queryModes . push ( mode )
35
- this . props . setMode ( queryModes . join ( ',' ) )
36
- }
37
- } }
38
- >
39
- < div className = 'mode-icon'
40
- style = { { fill : modeSelected ? 'red' : '#bbb' } }
41
- >
42
- { getModeIcon ( mode , icons ) }
43
- </ div >
44
- </ button >
45
- </ div >
46
- )
26
+ return < ModeButton
27
+ active = { modeSelected }
28
+ icons = { icons }
29
+ key = { mode }
30
+ mode = { mode }
31
+ queryModes = { queryModes }
32
+ setMode = { setMode } />
47
33
} ) }
48
34
</ div >
49
35
)
@@ -62,10 +48,6 @@ const mapStateToProps = (state, ownProps) => {
62
48
}
63
49
}
64
50
65
- const mapDispatchToProps = ( dispatch , ownProps ) => {
66
- return {
67
- setMode : ( mode ) => { dispatch ( setMode ( { mode } ) ) }
68
- }
69
- }
51
+ const mapDispatchToProps = { setMode}
70
52
71
53
export default connect ( mapStateToProps , mapDispatchToProps ) ( ModesPanel )
0 commit comments