Some checks failed
Deploy to Production / Build and Deploy (push) Has been cancelled
- Fix React bug #33580: remove Suspense boundaries co-located with Link components - Delete settings/loading.tsx and admin/loading.tsx (root cause of race condition) - Convert all admin navigation from Next.js Link to anchor tags - Move admin pages to dedicated (admin) route group - Add AdminHeader matching main header visual design - Add AdminSidebar with anchor-based navigation - Add /api/admin/models route handler (replaces server actions for GET) - Add /api/debug/client-error for server-side browser error reporting - Add useNoteRefreshOptional() to fix crash in AdminHeader - Hide Admin Dashboard menu for non-admin users - Change app icons from yellow to blue (#3A7CA5) matching brand primary - Fix admin search bar width to match main header Made-with: Cursor
30 lines
927 B
TypeScript
30 lines
927 B
TypeScript
import { getUsers } from '@/app/actions/admin'
|
|
import { CreateUserDialog } from '../create-user-dialog'
|
|
import { UserList } from '../user-list'
|
|
import { Plus } from 'lucide-react'
|
|
import { Button } from '@/components/ui/button'
|
|
|
|
export default async function AdminUsersPage() {
|
|
const users = await getUsers()
|
|
|
|
return (
|
|
<div className="space-y-6">
|
|
<div className="flex justify-between items-center">
|
|
<div>
|
|
<h1 className="text-3xl font-bold text-gray-900 dark:text-white">
|
|
Users
|
|
</h1>
|
|
<p className="text-gray-600 dark:text-gray-400 mt-1">
|
|
Manage application users and permissions
|
|
</p>
|
|
</div>
|
|
<CreateUserDialog />
|
|
</div>
|
|
|
|
<div className="bg-white dark:bg-zinc-900 rounded-lg shadow overflow-hidden border border-gray-200 dark:border-gray-800">
|
|
<UserList initialUsers={users} />
|
|
</div>
|
|
</div>
|
|
)
|
|
}
|