Skip to content

Commit a2f815c

Browse files
authored
Update AppHeader.vue: Add getNavItemLink function for getting link from item deponding on its type route or href
Add getNavItemLink function for getting link from item deponding on its type route or href
1 parent a994387 commit a2f815c

File tree

1 file changed

+12
-7
lines changed

1 file changed

+12
-7
lines changed

resources/js/components/AppHeader.vue

+12-7
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ const rightNavItems: NavItem[] = [
5858
icon: BookOpen,
5959
},
6060
];
61+
62+
const getNavItemLink = (item:NavItem,defaultValue:string = '#') : string=>{
63+
if(!item.href ) return defaultValue;
64+
return item.type === 'route' ? route(item.href):item.href;
65+
}
6166
</script>
6267

6368
<template>
@@ -82,9 +87,9 @@ const rightNavItems: NavItem[] = [
8287
<Link
8388
v-for="item in mainNavItems"
8489
:key="item.title"
85-
:href="item.href"
90+
:href="getNavItemLink(item)"
8691
class="flex items-center gap-x-3 rounded-lg px-3 py-2 text-sm font-medium hover:bg-accent"
87-
:class="activeItemStyles(item.href)"
92+
:class="activeItemStyles(getNavItemLink(item))"
8893
>
8994
<component v-if="item.icon" :is="item.icon" class="h-5 w-5" />
9095
{{ item.title }}
@@ -94,7 +99,7 @@ const rightNavItems: NavItem[] = [
9499
<a
95100
v-for="item in rightNavItems"
96101
:key="item.title"
97-
:href="item.href"
102+
:href="getNavItemLink(item)"
98103
target="_blank"
99104
rel="noopener noreferrer"
100105
class="flex items-center space-x-2 text-sm font-medium"
@@ -117,16 +122,16 @@ const rightNavItems: NavItem[] = [
117122
<NavigationMenu class="ml-10 flex h-full items-stretch">
118123
<NavigationMenuList class="flex h-full items-stretch space-x-2">
119124
<NavigationMenuItem v-for="(item, index) in mainNavItems" :key="index" class="relative flex h-full items-center">
120-
<Link :href="item.href">
125+
<Link :href="getNavItemLink(item)">
121126
<NavigationMenuLink
122-
:class="[navigationMenuTriggerStyle(), activeItemStyles(item.href), 'h-9 cursor-pointer px-3']"
127+
:class="[navigationMenuTriggerStyle(), activeItemStyles(getNavItemLink(item)), 'h-9 cursor-pointer px-3']"
123128
>
124129
<component v-if="item.icon" :is="item.icon" class="mr-2 h-4 w-4" />
125130
{{ item.title }}
126131
</NavigationMenuLink>
127132
</Link>
128133
<div
129-
v-if="isCurrentRoute(item.href)"
134+
v-if="isCurrentRoute(getNavItemLink(item))"
130135
class="absolute bottom-0 left-0 h-0.5 w-full translate-y-px bg-black dark:bg-white"
131136
></div>
132137
</NavigationMenuItem>
@@ -146,7 +151,7 @@ const rightNavItems: NavItem[] = [
146151
<Tooltip>
147152
<TooltipTrigger>
148153
<Button variant="ghost" size="icon" as-child class="group h-9 w-9 cursor-pointer">
149-
<a :href="item.href" target="_blank" rel="noopener noreferrer">
154+
<a :href="getNavItemLink(item)" target="_blank" rel="noopener noreferrer">
150155
<span class="sr-only">{{ item.title }}</span>
151156
<component :is="item.icon" class="size-5 opacity-80 group-hover:opacity-100" />
152157
</a>

0 commit comments

Comments
 (0)