Skip to content

Commit 154c434

Browse files
authored
Merge pull request #345 from elfman/issue339
Fixes #337, fixes #339, fixes #223
2 parents c3afa36 + c8d8ec2 commit 154c434

File tree

9 files changed

+312
-183
lines changed

9 files changed

+312
-183
lines changed

src/shared/actions/topcoder_header.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,24 +9,27 @@ import { createActions } from 'redux-actions';
99
* Payload creator for OPEN_MENU action.
1010
* @param {Object} menu Menu to open.
1111
* @param {Object} triggerNode HTML node which has triggered the action.
12+
* @param {Boolean} triggeredByTouch whether this action is triggered by touch event.
1213
* We gonna store to the state its on-screen layout position, so that
1314
* when mouse cursor moves back and forth between that node and the
1415
* opened menu, we can check it and keep the menu open.
1516
*/
16-
function openMenu(menu, triggerNode) {
17+
function openMenu(menu, triggerNode, triggeredByTouch) {
1718
return ({
1819
menu,
1920
trigger: _.toPlainObject(triggerNode.getBoundingClientRect()),
21+
isMobile: triggeredByTouch,
2022
});
2123
}
2224

2325
/**
2426
* Payload creator for OPEN_SEARCH action.
2527
* @param {Object} triggerNode HTML node which has triggered the action.
28+
* @param {Boolean} triggeredByTouch whether this action is triggered by touch event.
2629
* This serves the same purpose as in openMenu() function.
2730
*/
28-
function openSearch(triggerNode) {
29-
return openMenu(undefined, triggerNode);
31+
function openSearch(triggerNode, triggeredByTouch) {
32+
return openMenu(undefined, triggerNode, triggeredByTouch);
3033
}
3134

3235
/**

src/shared/components/TopcoderFooter/style.scss

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
}
4848
}
4949

50-
@media only screen and (max-width: 1024px) {
50+
@include xxs-to-sm {
5151
.link {
5252
display: block;
5353
}

src/shared/components/TopcoderHeader/desktop/SubMenu/Item/index.jsx

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,12 @@ export default function Item({
1212
icon,
1313
link,
1414
title,
15+
closeMenu,
1516
}) {
1617
let styleName = 'item';
1718
if (currentSubMenuTitle === title) styleName += ' current';
1819
return (
19-
<li styleName={styleName}>
20+
<li styleName={styleName} onClick={closeMenu}>
2021
<Link to={link}>
2122
{icon}
2223
{title}
@@ -30,4 +31,5 @@ Item.propTypes = {
3031
icon: PT.node.isRequired,
3132
link: PT.string.isRequired,
3233
title: PT.string.isRequired,
34+
closeMenu: PT.func.isRequired,
3335
};

src/shared/components/TopcoderHeader/desktop/SubMenu/index.jsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ export default function SubMenu({
1818
items = menu.items.map(item => (
1919
<Item
2020
currentSubMenuTitle={currentSubMenuTitle}
21+
closeMenu={closeMenu}
2122
key={item.title}
2223
{...item}
2324
/>

0 commit comments

Comments
 (0)