11<script setup lang="ts">
2- import { ref , onMounted , computed } from ' vue'
2+ import { ref , onMounted , onUnmounted , computed } from ' vue'
33import { useRouter } from ' vue-router'
44import { useI18n } from ' vue-i18n'
55// import { cn } from '@/lib/utils' // cn might not be needed for root if $attrs.class is used directly
@@ -30,6 +30,7 @@ import {
3030import { Avatar , AvatarFallback , AvatarImage } from ' @/components/ui/avatar'
3131import { TeamService , type Team } from ' @/services/teamService'
3232import { UserService , type User } from ' @/services/userService'
33+ import { useEventBus } from ' @/composables/useEventBus'
3334import {
3435 Server ,
3536 LayoutDashboard ,
@@ -52,6 +53,7 @@ const props = defineProps<Props>()
5253
5354const router = useRouter ()
5455const { t } = useI18n ()
56+ const eventBus = useEventBus ()
5557
5658// User data
5759const currentUser = ref <User | null >(null )
@@ -154,6 +156,17 @@ const getUserInitials = (name: string) => { return name.split(' ').map(word => w
154156onMounted (() => {
155157 fetchUserData ()
156158 fetchTeams ()
159+
160+ // Listen for team updates from other components
161+ eventBus .on (' teams-updated' , () => {
162+ console .log (' Teams updated event received, refreshing teams...' )
163+ fetchTeams (true ) // Force refresh to get latest data
164+ })
165+ })
166+
167+ onUnmounted (() => {
168+ // Clean up event listeners
169+ eventBus .off (' teams-updated' )
157170})
158171 </script >
159172
0 commit comments