|
@@ -117,17 +117,16 @@ export default function AdminUsersPage() {
|
|
|
if (loading) return <p className="text-white/60">Загрузка...</p>
|
|
if (loading) return <p className="text-white/60">Загрузка...</p>
|
|
|
|
|
|
|
|
return (
|
|
return (
|
|
|
- <div className="min-h-screen pt-20">
|
|
|
|
|
- <div className="mx-auto max-w-3xl px-4">
|
|
|
|
|
- <div className="mb-6 flex items-center justify-between">
|
|
|
|
|
- <h1 className="text-2xl font-bold text-white">Управление пользователями</h1>
|
|
|
|
|
- <button onClick={() => setShowCreate(true)}
|
|
|
|
|
- className="rounded-lg bg-green-600 px-4 py-2 text-sm text-white hover:bg-green-500 transition"
|
|
|
|
|
- >+ Создать</button>
|
|
|
|
|
- </div>
|
|
|
|
|
- {msg && <p className="mb-4 rounded-lg bg-blue-500/10 px-4 py-2 text-sm text-blue-400">{msg}</p>}
|
|
|
|
|
-
|
|
|
|
|
- <div className="mb-4 flex flex-wrap gap-2">
|
|
|
|
|
|
|
+ <div className="mx-auto max-w-3xl px-4 pb-8">
|
|
|
|
|
+ <div className="sticky top-6 z-10 -mx-4 mb-6 bg-[#0f172a] px-4 pb-3">
|
|
|
|
|
+ <div className="flex items-center justify-between pt-3">
|
|
|
|
|
+ <h1 className="text-2xl font-bold text-white">Управление пользователями</h1>
|
|
|
|
|
+ <button onClick={() => setShowCreate(true)}
|
|
|
|
|
+ className="rounded-lg bg-green-600 px-4 py-2 text-sm text-white hover:bg-green-500 transition"
|
|
|
|
|
+ >+ Создать</button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+ {msg && <p className="mt-3 rounded-lg bg-blue-500/10 px-4 py-2 text-sm text-blue-400">{msg}</p>}
|
|
|
|
|
+ <div className="mt-3 flex flex-wrap gap-2">
|
|
|
{['', 'customer', 'landlord', 'executor', 'moderator'].map((r) => (
|
|
{['', 'customer', 'landlord', 'executor', 'moderator'].map((r) => (
|
|
|
<button key={r} onClick={() => setRoleFilter(r)}
|
|
<button key={r} onClick={() => setRoleFilter(r)}
|
|
|
className={`rounded-lg px-3 py-1.5 text-sm transition ${
|
|
className={`rounded-lg px-3 py-1.5 text-sm transition ${
|
|
@@ -138,10 +137,11 @@ export default function AdminUsersPage() {
|
|
|
</button>
|
|
</button>
|
|
|
))}
|
|
))}
|
|
|
</div>
|
|
</div>
|
|
|
|
|
+ </div>
|
|
|
|
|
|
|
|
{(() => {
|
|
{(() => {
|
|
|
return (
|
|
return (
|
|
|
- <div className="max-h-[calc(100vh-17rem)] space-y-2 overflow-y-auto pb-8 pr-1">
|
|
|
|
|
|
|
+ <div className="space-y-2 pb-8 pr-1">
|
|
|
{users.map((user) => {
|
|
{users.map((user) => {
|
|
|
const isSelf = user.id === currentUser?.id
|
|
const isSelf = user.id === currentUser?.id
|
|
|
|
|
|
|
@@ -195,6 +195,5 @@ export default function AdminUsersPage() {
|
|
|
{showCreate && (
|
|
{showCreate && (
|
|
|
<CreateUserModal onClose={() => setShowCreate(false)} onCreated={() => { setShowCreate(false); setMsg('Пользователь создан'); fetchUsers() }} />
|
|
<CreateUserModal onClose={() => setShowCreate(false)} onCreated={() => { setShowCreate(false); setMsg('Пользователь создан'); fetchUsers() }} />
|
|
|
)}
|
|
)}
|
|
|
- </div>
|
|
|
|
|
)
|
|
)
|
|
|
}
|
|
}
|