chore: remove shadcn components/ui dir; migrate login+topbar+providers to native components; single design system

This commit is contained in:
Forge
2026-03-26 08:27:03 +08:00
parent e6ccda70d2
commit 4970c70546
15 changed files with 68 additions and 811 deletions

View File

@@ -2,7 +2,6 @@
import { useRouter } from 'next/navigation';
import { useAuthStore } from '@/lib/auth-store';
import { Button } from '@/components/ui/button';
import { LogOut, User } from 'lucide-react';
export default function Topbar() {
@@ -14,33 +13,27 @@ export default function Topbar() {
router.push('/login');
};
const fullName = user ? `${user.firstName} ${user.lastName}` : 'Admin';
const fullName = user ? `${user.firstName ?? ''} ${user.lastName ?? ''}`.trim() : 'Admin';
return (
<header
className="h-14 border-b flex items-center justify-between px-6"
style={{ backgroundColor: '#fff', borderColor: '#E2E8F0' }}
>
<header className="h-14 border-b flex items-center justify-between px-6"
style={{ backgroundColor: '#fff', borderColor: '#E2E8F0' }}>
<div />
<div className="flex items-center gap-3">
<div className="flex items-center gap-2 text-sm text-slate-600">
<User size={16} />
<span>{fullName}</span>
{user?.roles?.[0] && (
<span className="text-xs bg-slate-100 text-slate-500 px-2 py-0.5 rounded-full capitalize">
<span className="text-xs bg-slate-100 text-slate-500 px-2 py-0.5 rounded-full">
{user.roles[0]}
</span>
)}
</div>
<Button
variant="ghost"
size="sm"
onClick={handleLogout}
className="text-slate-500 hover:text-red-500 gap-1.5"
>
<button onClick={handleLogout}
className="flex items-center gap-1.5 text-sm text-slate-500 hover:text-red-500 px-2 py-1.5 rounded-lg hover:bg-red-50 transition-colors">
<LogOut size={15} />
Logout
</Button>
</button>
</div>
</header>
);