1
1
import React , { PureComponent } from 'react' ;
2
2
import PropTypes from 'prop-types' ;
3
- import MediaQuery from 'react-responsive' ;
4
- import { SCREEN_M } from 'utils/constants' ;
5
3
import cx from 'classnames' ;
6
4
import isEqual from 'lodash/isEqual' ;
7
5
import remove from 'lodash/remove' ;
@@ -47,10 +45,9 @@ class MapMenu extends PureComponent {
47
45
const {
48
46
showAnalysis,
49
47
setMenuSettings,
50
- setRecentImagerySettings,
51
48
location,
52
- recentVisible,
53
49
menuSection,
50
+ recentActive,
54
51
isDesktop
55
52
} = this . props ;
56
53
if (
@@ -63,19 +60,14 @@ class MapMenu extends PureComponent {
63
60
showAnalysis ( ) ;
64
61
}
65
62
66
- if ( ! isDesktop && recentVisible ) {
67
- setMenuSettings ( { menuSection : 'recent-imagery' } ) ;
63
+ if ( ! isDesktop && ! menuSection && recentActive ) {
64
+ setMenuSettings ( { menuSection : 'recent-imagery-collapsed ' } ) ;
68
65
}
69
66
70
67
if (
71
- ! isDesktop &&
72
- ! menuSection &&
73
- ! isEqual ( menuSection , prevProps . menuSection )
68
+ ! isEqual ( isDesktop , prevProps . isDesktop ) ||
69
+ ( ! recentActive && ! isEqual ( recentActive , prevProps . recentActive ) )
74
70
) {
75
- setRecentImagerySettings ( { visible : false } ) ;
76
- }
77
-
78
- if ( ! isEqual ( isDesktop , prevProps . isDesktop ) ) {
79
71
setMenuSettings ( { menuSection : '' } ) ;
80
72
}
81
73
}
@@ -92,63 +84,69 @@ class MapMenu extends PureComponent {
92
84
loading,
93
85
analysisLoading,
94
86
embed,
87
+ isDesktop,
95
88
...props
96
89
} = this . props ;
97
- const { Component, label, category, large, icon, ...rest } =
90
+ const {
91
+ Component,
92
+ label,
93
+ category,
94
+ large,
95
+ icon,
96
+ collapsed,
97
+ openSection,
98
+ ...rest
99
+ } =
98
100
activeSection || { } ;
99
101
100
102
return (
101
- < MediaQuery minWidth = { SCREEN_M } >
102
- { isDesktop => (
103
- < div className = { cx ( 'c-map-menu' , className ) } >
104
- < div
105
- className = { cx ( 'menu-tiles' , 'map-tour-data-layers' , { embed } ) }
106
- >
107
- { isDesktop &&
108
- ! embed && (
109
- < MenuDesktop
110
- className = "menu-desktop"
111
- datasetSections = { datasetSections }
112
- searchSections = { searchSections }
113
- setMenuSettings = { setMenuSettings }
114
- />
115
- ) }
116
- { ! isDesktop && (
117
- < MenuMobile
118
- sections = { mobileSections }
119
- setMenuSettings = { setMenuSettings }
120
- />
121
- ) }
122
- </ div >
123
- < MenuPanel
124
- className = "menu-panel"
125
- label = { label }
126
- category = { category }
127
- active = { ! ! menuSection }
128
- large = { large }
103
+ < div className = { cx ( 'c-map-menu' , className ) } >
104
+ < div className = { cx ( 'menu-tiles' , 'map-tour-data-layers' , { embed } ) } >
105
+ { isDesktop &&
106
+ ! embed && (
107
+ < MenuDesktop
108
+ className = "menu-desktop"
109
+ datasetSections = { datasetSections }
110
+ searchSections = { searchSections }
111
+ setMenuSettings = { setMenuSettings }
112
+ />
113
+ ) }
114
+ { ! isDesktop && (
115
+ < MenuMobile
116
+ sections = { mobileSections }
117
+ setMenuSettings = { setMenuSettings }
118
+ />
119
+ ) }
120
+ </ div >
121
+ < MenuPanel
122
+ className = "menu-panel"
123
+ label = { label }
124
+ category = { category }
125
+ active = { ! ! menuSection }
126
+ large = { large }
127
+ isDesktop = { isDesktop }
128
+ setMenuSettings = { setMenuSettings }
129
+ loading = { loading }
130
+ collapsed = { collapsed }
131
+ onClose = { ( ) =>
132
+ setMenuSettings ( { menuSection : '' , datasetCategory : '' } )
133
+ }
134
+ onOpen = { ( ) => setMenuSettings ( { menuSection : openSection } ) }
135
+ >
136
+ { Component && (
137
+ < Component
138
+ menuSection = { menuSection }
129
139
isDesktop = { isDesktop }
130
140
setMenuSettings = { setMenuSettings }
131
- loading = { loading }
132
- onClose = { ( ) =>
133
- setMenuSettings ( { menuSection : '' , datasetCategory : '' } )
134
- }
135
- >
136
- { Component && (
137
- < Component
138
- menuSection = { menuSection }
139
- isDesktop = { isDesktop }
140
- setMenuSettings = { setMenuSettings }
141
- onToggleLayer = { this . onToggleLayer }
142
- { ...props }
143
- { ...menuSection === 'datasets' && {
144
- ...rest
145
- } }
146
- />
147
- ) }
148
- </ MenuPanel >
149
- </ div >
150
- ) }
151
- </ MediaQuery >
141
+ onToggleLayer = { this . onToggleLayer }
142
+ { ...props }
143
+ { ...menuSection === 'datasets' && {
144
+ ...rest
145
+ } }
146
+ />
147
+ ) }
148
+ </ MenuPanel >
149
+ </ div >
152
150
) ;
153
151
}
154
152
}
@@ -177,10 +175,9 @@ MapMenu.propTypes = {
177
175
datasetCategory : PropTypes . string ,
178
176
showAnalysis : PropTypes . func ,
179
177
location : PropTypes . object ,
180
- setRecentImagerySettings : PropTypes . func ,
181
- recentVisible : PropTypes . bool ,
182
178
isDesktop : PropTypes . bool ,
183
- embed : PropTypes . bool
179
+ embed : PropTypes . bool ,
180
+ recentActive : PropTypes . bool
184
181
} ;
185
182
186
183
export default MapMenu ;
0 commit comments