@@ -19,6 +19,7 @@ import CompanyOrSpeakerAutocompleteWithDialog from "./CompanyOrSpeakerAutocomple
1919import type { Company } from " @/dto/companies" ;
2020import type { Speaker } from " @/dto/speakers" ;
2121import { useMagicKeys } from " @vueuse/core" ;
22+ import Notification from " ./navbar/Notification.vue" ;
2223
2324const isOpen = ref (false );
2425const authStore = useAuthStore ();
@@ -29,6 +30,8 @@ const logout = () => {
2930 router .push ({ name: " landing" });
3031};
3132
33+
34+
3235interface NavigationItem {
3336 name: string ;
3437 to: RouteLocationRaw ;
@@ -96,67 +99,45 @@ watch(shortcutLinux, () => {
9699 </script >
97100
98101<template >
99- <section
100- class =" fixed top-0 left-0 right-0 z-50 w-full flex items-center bg-white py-4 border-b border-gray-200"
101- >
102+ <section class =" fixed top-0 left-0 right-0 z-50 w-full flex items-center bg-white py-4 border-b border-gray-200" >
102103 <div class =" container mx-auto px-4 md:px-6 lg:px-8" >
103104 <nav class =" flex items-center justify-between" >
104105 <div class =" flex items-center gap-3" >
105- <RouterLink :to =" { name: ' dashboard' } " class="text-2xl font-bold"
106- >Deck</RouterLink
107- >
106+ <RouterLink :to =" { name: ' dashboard' } " class="text-2xl font-bold">Deck</RouterLink >
108107
109108 <Select v-model =" eventStore .selectedEvent " >
110109 <SelectTrigger :loading =" eventsLoading " >
111110 <SelectValue placeholder="Edition" />
112111 </SelectTrigger >
113112 <SelectContent >
114- <SelectItem
115- v-for =" event in sortedEvents "
116- :key =" event .id "
117- :value =" event "
118- >
113+ <SelectItem v-for =" event in sortedEvents " :key =" event .id " :value =" event " >
119114 {{ event.name }}
120115 </SelectItem >
121116 </SelectContent >
122117 </Select >
123118 </div >
124119
125- <CompanyOrSpeakerAutocompleteWithDialog
126- :autofocus =" showSuggestions "
127- :force-show-suggestions =" showSuggestions "
128- class="hidden md:inline w-full px-3"
129- placeholder="Search"
130- @company-selected =" companySelected "
131- @speaker-selected =" speakerSelected "
132- show-create
133- />
120+ <CompanyOrSpeakerAutocompleteWithDialog :autofocus =" showSuggestions " :force-show-suggestions =" showSuggestions "
121+ class="hidden md:inline w-full px-3" placeholder="Search" @company-selected =" companySelected "
122+ @speaker-selected =" speakerSelected " show-create />
134123
135124 <!-- Desktop Navigation -->
136125 <div class =" hidden md:flex items-center space-x-4" >
137- <RouterLink
138- v-for =" item in navigation "
139- :key =" item .name "
140- :to =" item .to "
141- class="text-gray-600 hover:text-gray-900 "
142- :title =" item .name "
143- >
126+ <Notification />
127+ <RouterLink v-for =" item in navigation " :key =" item .name " :to =" item .to "
128+ class="text-gray-600 hover:text-gray-900 " :title =" item .name " >
144129 <component v-if =" item.icon" :is =" item.icon" class =" h-5 w-5" />
145130 <span v-else >{{ item.name }}</span >
146131 </RouterLink >
147132
148- <Button
149- variant="ghost"
150- size="sm"
151- @click =" logout "
152- class="text-gray-600 hover:text-gray-900 "
153- >
133+ <Button variant="ghost" size="sm" @click =" logout " class="text-gray-600 hover:text-gray-900 ">
154134 <LogOut class="h-4 w-4" />
155135 </Button >
156136 </div >
157137
158138 <!-- Mobile Navigation Button -->
159139 <div class =" md:hidden" >
140+ <Notification />
160141 <Button variant="ghost" @click =" isOpen = ! isOpen " >
161142 <Menu v-if =" ! isOpen " class="h-6 w-6" />
162143 <X v-else class="h-6 w-6" />
@@ -165,35 +146,21 @@ watch(shortcutLinux, () => {
165146 </nav >
166147
167148 <!-- Mobile Navigation Menu -->
168- <div
169- v-if =" isOpen"
170- class =" md:hidden absolute top-full left-0 w-full bg-white border-b border-gray-200 py-4"
171- >
172- <CompanyOrSpeakerAutocompleteWithDialog
173- class="w-full px-3 pb-3"
174- placeholder="Search"
175- @company-selected =" companySelected "
176- @speaker-selected =" speakerSelected "
177- />
149+ <div v-if =" isOpen" class =" md:hidden absolute top-full left-0 w-full bg-white border-b border-gray-200 py-4" >
150+ <CompanyOrSpeakerAutocompleteWithDialog class="w-full px-3 pb-3" placeholder="Search"
151+ @company-selected =" companySelected " @speaker-selected =" speakerSelected " />
178152
179153 <div class =" container mx-auto px-4" >
180154 <div class =" flex flex-col space-y-4" >
181- <RouterLink
182- v-for =" item in navigation "
183- :key =" item .name "
184- :to =" item .to "
185- class="text-gray-600 hover:text-gray-900 flex items-center gap-2"
186- >
155+
156+ <RouterLink v-for =" item in navigation " :key =" item .name " :to =" item .to "
157+ class="text-gray-600 hover:text-gray-900 flex items-center gap-2">
187158 <component v-if =" item.icon" :is =" item.icon" class =" h-4 w-4" />
188159 <span >{{ item.name }}</span >
189160 </RouterLink >
190161
191- <Button
192- variant="ghost"
193- size="sm"
194- @click =" logout "
195- class="text-gray-600 hover:text-gray-900 justify-start p-0"
196- >
162+ <Button variant="ghost" size="sm" @click =" logout "
163+ class="text-gray-600 hover:text-gray-900 justify-start p-0">
197164 <LogOut class="h-4 w-4 mr-2" />
198165 Logout
199166 </Button >
0 commit comments