Files
webshop/shop/app/admin/users/page.tsx

43 lines
1.4 KiB
TypeScript

import { getUsers } from '@/lib/actions/users'
import { UserList } from '@/components/admin/user-list'
import { UserDialog } from '@/components/admin/user-dialog'
import { Users } from 'lucide-react'
import { Suspense } from 'react'
export default async function AdminUsersPage() {
return (
<div className="flex-1 space-y-8 p-8 pt-6">
<div className="flex items-center justify-between space-y-2">
<div>
<h2 className="text-3xl font-bold tracking-tight text-gradient flex items-center gap-3">
<Users className="w-8 h-8 text-primary" />
Benutzerverwaltung
</h2>
<p className="text-slate-400">
Verwalten Sie Benutzerkonten, Berechtigungen und Sicherheit.
</p>
</div>
<div className="flex items-center space-x-2">
<UserDialog />
</div>
</div>
<Suspense fallback={<div className="h-40 w-full animate-pulse bg-white/5 rounded-xl" />}>
<UserDataWrapper />
</Suspense>
</div>
)
}
async function UserDataWrapper() {
try {
const users = await getUsers()
return <UserList initialUsers={users} />
} catch (error) {
return (
<div className="p-8 border border-destructive/50 bg-destructive/10 rounded-xl text-destructive text-center">
Fehler beim Laden der Benutzer. Stellen Sie sicher, dass der SERVICE_ROLE_KEY korrekt konfiguriert ist.
</div>
)
}
}