Skip to content

Commit 5a97656

Browse files
Merge pull request #86 from topcoder-platform/PROD-3391_mobile-nav
PROD-3391 - mobile nav - remove sub menus for tool navs
2 parents ab3ac23 + aed07e5 commit 5a97656

File tree

7 files changed

+22
-13
lines changed

7 files changed

+22
-13
lines changed

src/lib/components/Accordion.svelte

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,9 +41,11 @@
4141
>
4242
{item.label}
4343
</a>
44-
<span class={styles.itemTrigger} on:click={() => toggleItem(item)} on:keydown={() => {}}>
45-
<img src={iconUrl} alt="^" />
46-
</span>
44+
{#if item.children?.length}
45+
<span class={styles.itemTrigger} on:click={() => toggleItem(item)} on:keydown={() => {}}>
46+
<img src={iconUrl} alt="^" />
47+
</span>
48+
{/if}
4749
</div>
4850
{:else}
4951
<a class={styles.navButton} href={navUrl(item)}>

src/lib/functions/marketing-navigation.provider.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,6 @@ export function getMainNavItems(isAuthenticated: boolean): NavMenuItem[] {
99
return activateAuthenticatedRoutes(isAuthenticated, menu);
1010
}
1111

12-
export function getActiveRoute(index?: number): NavMenuItem[] {
13-
return getActiveRouteUtil(navMenu, index);
12+
export function getActiveRoute(navItems: NavMenuItem[], index?: number): NavMenuItem[] {
13+
return getActiveRouteUtil(navItems, index);
1414
}

src/lib/marketing-navigation/MarketingNavigation.svelte

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,16 @@
2121
let menuItems: NavMenuItem[];
2222
$: menuItems = getMainNavItems(isAuthenticated)
2323
24-
const activeRoute: NavMenuItem[] = getActiveRoute()
24+
let activeRoute: NavMenuItem[] = [];
25+
$: activeRoute = getActiveRoute(menuItems)
2526
const [primaryRoute, secondaryRoute, tertiaryRoute] = activeRoute
2627
2728
onMount(checkAndLoadFonts)
2829
</script>
2930

3031
<div class="tc-universal-nav-wrap">
3132
<NavigationBar
33+
activeRoutePath={activeRoute}
3234
activeRoute={primaryRoute}
3335
style='primary'
3436
menuItems={menuItems}

src/lib/marketing-navigation/components/NavigationBar.svelte

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
88
export let style: 'primary'|'secondary'|'tertiary';
99
export let menuItems: NavMenuItem[] = [];
10+
export let activeRoutePath: NavMenuItem[] = [];
1011
export let activeRoute: NavMenuItem;
1112
export let isMobile: boolean = false;
1213
@@ -17,7 +18,10 @@
1718

1819
<TopNavbar style={style} minLogoVersion={isMobile}>
1920
{#if isMobile}
20-
<MobileNavigation />
21+
<MobileNavigation
22+
menuItems={menuItems}
23+
activeRoutes={activeRoutePath}
24+
/>
2125
{:else}
2226
<LinksMenu
2327
menuItems={menuItems}

src/lib/mobile-navigation/MobileNavigation.svelte

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
<script lang="ts">
22
import type { NavMenuItem } from 'lib/functions/nav-menu-item.model';
3-
import { getActiveRoute, getMainNavItems } from 'lib/functions/marketing-navigation.provider'
43
import MobileMenu from 'lib/components/MobileMenu.svelte';
54
import Accordion from 'lib/components/Accordion.svelte';
65
import { getPublicPath, navUrl } from 'lib/utils/paths';
76
import { classnames } from 'lib/utils/classnames';
87
98
import styles from './MobileNavigation.module.scss';
109
11-
const menuItems = getMainNavItems()
12-
const activeRoutes: NavMenuItem[] = getActiveRoute()
10+
export let menuItems: NavMenuItem[];
11+
export let activeRoutes: NavMenuItem[] = [];
1312
const toggleMenuIcon = getPublicPath(`/assets/icon-menu.svg`);
1413
1514
let menuIsVisible = false;

src/lib/tool-navigation/ToolNavigation.svelte

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,9 @@
5555

5656
<TopNavbar minLogoVersion class={styles.navbar} style="primary">
5757
{#if $isMobile}
58-
<MobileNavigation />
58+
<MobileNavigation
59+
menuItems={menuItems}
60+
/>
5961
{:else}
6062
<LinksMenu
6163
menuItems={menuItems}

src/lib/utils/routes.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,8 +65,8 @@ export const matchRoutes = (navMenu: NavMenuItem, path: string): NavMenuItem[] =
6565
* @param trailLevel The trail level of the active route to return
6666
* @returns
6767
*/
68-
export function getActiveRoute(navMenu: NavMenuItem, trailLevel?: number): NavMenuItem[] {
68+
export function getActiveRoute(navMenuItems: NavMenuItem[], trailLevel?: number): NavMenuItem[] {
6969
const locationHref = `${location.pathname}`
70-
const activeRouteTrail = [].concat(matchRoutes(navMenu, locationHref))
70+
const activeRouteTrail = [].concat(matchRoutes({children: navMenuItems} as NavMenuItem, locationHref))
7171
return typeof trailLevel === 'number' ? activeRouteTrail?.slice(trailLevel, 1) : activeRouteTrail
7272
}

0 commit comments

Comments
 (0)