fix: tenancy middleware order and ui consistency for user profile
This commit is contained in:
@@ -351,7 +351,7 @@ export default function AuthenticatedLayout({
|
||||
{user.name}
|
||||
</span>
|
||||
<span className="text-xs text-slate-500">
|
||||
{user.username || 'Administrator'}
|
||||
{user.role_labels?.[0] || user.roles?.[0] || '一般用戶'}
|
||||
</span>
|
||||
</div>
|
||||
<div className="h-9 w-9 bg-slate-100 rounded-full flex items-center justify-center text-slate-600 group-hover:bg-primary-lightest group-hover:text-primary-main transition-all">
|
||||
@@ -359,7 +359,17 @@ export default function AuthenticatedLayout({
|
||||
</div>
|
||||
</DropdownMenuTrigger>
|
||||
<DropdownMenuContent align="end" className="w-56 z-[100]" sideOffset={8}>
|
||||
<DropdownMenuLabel>我的帳號</DropdownMenuLabel>
|
||||
<DropdownMenuLabel>{user.name} ({user.username})</DropdownMenuLabel>
|
||||
<DropdownMenuSeparator />
|
||||
<DropdownMenuItem asChild>
|
||||
<Link
|
||||
href={route('profile.edit')}
|
||||
className="w-full flex items-center cursor-pointer text-slate-600 focus:bg-slate-100 focus:text-slate-900 group"
|
||||
>
|
||||
<Settings className="mr-2 h-4 w-4 text-slate-500 group-focus:text-slate-900" />
|
||||
<span>使用者設定</span>
|
||||
</Link>
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuSeparator />
|
||||
<DropdownMenuItem asChild>
|
||||
<Link
|
||||
|
||||
@@ -5,6 +5,9 @@ import {
|
||||
LayoutDashboard,
|
||||
LogOut,
|
||||
User,
|
||||
Menu,
|
||||
X,
|
||||
Settings,
|
||||
} from "lucide-react";
|
||||
import { Toaster } from "sonner";
|
||||
import {
|
||||
@@ -16,7 +19,6 @@ import {
|
||||
DropdownMenuTrigger,
|
||||
} from "@/Components/ui/dropdown-menu";
|
||||
import { useState } from "react";
|
||||
import { Menu, X } from "lucide-react";
|
||||
|
||||
interface LandlordLayoutProps {
|
||||
children: React.ReactNode;
|
||||
@@ -114,24 +116,36 @@ export default function LandlordLayout({ children, title }: LandlordLayoutProps)
|
||||
<DropdownMenu modal={false}>
|
||||
<DropdownMenuTrigger className="flex items-center gap-2 outline-none group">
|
||||
<div className="flex flex-col items-end mr-1">
|
||||
<span className="text-sm font-medium text-slate-700">
|
||||
<span className="text-sm font-medium text-slate-700 group-hover:text-slate-900 transition-colors">
|
||||
{user.name}
|
||||
</span>
|
||||
<span className="text-xs text-slate-500">系統管理員</span>
|
||||
<span className="text-xs text-slate-500">
|
||||
{user.role_labels?.[0] || user.roles?.[0] || '系統管理員'}
|
||||
</span>
|
||||
</div>
|
||||
<div className="h-9 w-9 bg-slate-100 rounded-full flex items-center justify-center">
|
||||
<User className="h-5 w-5 text-slate-600" />
|
||||
<div className="h-9 w-9 bg-slate-100 rounded-full flex items-center justify-center text-slate-600 group-hover:bg-primary-lightest group-hover:text-primary-main transition-all">
|
||||
<User className="h-5 w-5" />
|
||||
</div>
|
||||
</DropdownMenuTrigger>
|
||||
<DropdownMenuContent align="end" className="w-56 z-[100]">
|
||||
<DropdownMenuLabel>我的帳號</DropdownMenuLabel>
|
||||
<DropdownMenuContent align="end" className="w-56 z-[100]" sideOffset={8}>
|
||||
<DropdownMenuLabel>{user.name} ({user.username})</DropdownMenuLabel>
|
||||
<DropdownMenuSeparator />
|
||||
<DropdownMenuItem asChild>
|
||||
<Link
|
||||
href={route('landlord.profile.edit')}
|
||||
className="w-full flex items-center cursor-pointer text-slate-600 focus:bg-slate-100 focus:text-slate-900 group"
|
||||
>
|
||||
<Settings className="mr-2 h-4 w-4 text-slate-500 group-focus:text-slate-900" />
|
||||
<span>使用者設定</span>
|
||||
</Link>
|
||||
</DropdownMenuItem>
|
||||
<DropdownMenuSeparator />
|
||||
<DropdownMenuItem asChild>
|
||||
<Link
|
||||
href={route('logout')}
|
||||
method="post"
|
||||
as="button"
|
||||
className="w-full flex items-center cursor-pointer text-red-600"
|
||||
className="w-full flex items-center cursor-pointer text-red-600 focus:text-red-600 focus:bg-red-50"
|
||||
>
|
||||
<LogOut className="mr-2 h-4 w-4" />
|
||||
<span>登出系統</span>
|
||||
|
||||
Reference in New Issue
Block a user