Skip to content

Commit a536feb

Browse files
committed
topcoder-platform#101 fix bug when all submenus are in "more" menu
1 parent b5b0729 commit a536feb

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

src/components/TopNav/index.js

+20
Original file line numberDiff line numberDiff line change
@@ -129,6 +129,11 @@ const TopNav = ({
129129
var menu1 = findLevel1Menu(level1Id)
130130
if (menu1 && menu1.subMenu) {
131131
let subMenu = menu1.subMenu
132+
// all sub menu are all in 'more'
133+
if (subMenu.length === moreMenu.length) {
134+
setChosenArrowPos('more')
135+
return
136+
}
132137
let pos = _.findIndex(subMenu, (level2) => {
133138
return level2.id === menuId
134139
})
@@ -173,6 +178,21 @@ const TopNav = ({
173178
setChosenArrowX(getMenuCenter(menuId))
174179
}, [setChosenArrowX, getMenuCenter])
175180

181+
useEffect(() => {
182+
// after page first view, when all submenus show in 'more' menu, set chosenArrow below 'more' menu
183+
const { m1 } = getMenuIdsFromPath(menuWithId, path)
184+
var menu1 = findLevel1Menu(m1)
185+
if (menu1 && menu1.subMenu) {
186+
let subMenu = menu1.subMenu
187+
// all sub menu are all in 'more'
188+
if (subMenu.length === moreMenu.length) {
189+
setTimeout(() => {
190+
setChosenArrowPos('more')
191+
})
192+
}
193+
}
194+
}, [(moreMenu || []).length])
195+
176196
const setIconSelectPos = menuId => {
177197
// wait for menuId element to get positioned in its place
178198
setTimeout(() => {

0 commit comments

Comments
 (0)