Skip to content

Commit 16e5b07

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 55cc169 commit 16e5b07

File tree

1 file changed

+6
-5
lines changed

1 file changed

+6
-5
lines changed

resources/js/components/NavUser.vue

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,11 @@ import { SidebarMenu, SidebarMenuButton, SidebarMenuItem, useSidebar } from '@/c
55
import { type SharedData, 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<SharedData>();
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,17 +19,17 @@ 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>
25-
<DropdownMenuContent
26+
<DropdownMenuContent
2627
class="w-(--reka-dropdown-menu-trigger-width) min-w-56 rounded-lg"
2728
:side="isMobile ? 'bottom' : state === 'collapsed' ? 'left' : 'bottom'"
28-
align="end"
29+
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)