Skip to content

Commit 83f0d35

Browse files
committed
refactor: make user reactive using computed and simplify prop passing
- Switched `user` from a static variable to a computed property to enable reactivity. This ensures updated user data (e.g. after profile update) is reflected in the NavBar without requiring a full page refresh. - Updated prop binding syntax from `:user="user"` to shorthand `:user`.
1 parent 09ee1a9 commit 83f0d35

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

resources/js/components/NavUser.vue

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ import { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '@/c
55
import { type User } from '@/types';
66
import { usePage } from '@inertiajs/vue3';
77
import { ChevronsUpDown } from 'lucide-vue-next';
8+
import { computed } from 'vue';
89
import UserMenuContent from './UserMenuContent.vue';
910
1011
const page = usePage();
11-
const user = page.props.auth.user as User;
12+
const user = computed(() => page.props.auth.user as User);
1213
const { isMobile, state } = useSidebar();
1314
</script>
1415

@@ -18,7 +19,7 @@ const { isMobile, state } = useSidebar();
1819
<DropdownMenu>
1920
<DropdownMenuTrigger as-child>
2021
<SidebarMenuButton size="lg" class="data-[state=open]:bg-sidebar-accent data-[state=open]:text-sidebar-accent-foreground">
21-
<UserInfo :user="user" />
22+
<UserInfo :user />
2223
<ChevronsUpDown class="ml-auto size-4" />
2324
</SidebarMenuButton>
2425
</DropdownMenuTrigger>
@@ -28,7 +29,7 @@ const { isMobile, state } = useSidebar();
2829
align="end"
2930
:side-offset="4"
3031
>
31-
<UserMenuContent :user="user" />
32+
<UserMenuContent :user />
3233
</DropdownMenuContent>
3334
</DropdownMenu>
3435
</SidebarMenuItem>

0 commit comments

Comments
 (0)