diff --git a/app/(main)/users/page.tsx b/app/(main)/users/page.tsx index fd3063ee..a0c21070 100644 --- a/app/(main)/users/page.tsx +++ b/app/(main)/users/page.tsx @@ -1,6 +1,6 @@ "use client" -import { useCallback, useEffect, useState } from "react" +import { useCallback, useEffect, useRef, useState } from "react" import { PageHeader } from "@/components/page-header" import { DataPageCard } from "@/components/data-page-card" import { UsersDataGrid } from "@/components/data-grids/users-data-grid" @@ -29,7 +29,9 @@ import { type AppUserForm, type UserServerOption, } from "@/lib/users" -import { listServers } from "@/shared/api/servers" +import { serverListSchema } from "@mmapp/contracts/servers" +import { requestJson } from "@/shared/api/http-client" +import { can } from "@/lib/auth" import { createAppUser, createUserBinding, @@ -60,49 +62,78 @@ function toServerOptionsFromMock(): UserServerOption[] { } export default function UsersPage() { + const { mode, backendUrl, prefsHydrated } = useDataSource() + if (!prefsHydrated) return
Загрузка настроек пользователей…
+ returnДемо: изменения сохраняются только в текущем экране.
} + {!canRead &&Для чтения пользователей требуется mm:users:read.
} + {!canWrite &&Для изменения пользователей требуется mm:users:write.
} + {isLive && !canReadServers &&Каталог серверов недоступен: требуется mm:servers:read. Изменения приостановлены.
} + {usersError &&{usersKnown ? "Не удалось обновить пользователей. Последний список сохранён." : "Пользователи пока неизвестны."}
{usersError}
{serversKnown ? "Не удалось обновить серверы. Последний каталог сохранён." : "Каталог серверов пока неизвестен."} Изменения приостановлены.
{serversError}
Пользователи получены: {new Date(usersReadAt).toLocaleTimeString("ru-RU")}{loading ? " · обновляются" : ""}
} + {isLive && loading && !usersKnown &&Загрузка пользователей…
} {/* Preview: https://reui.io/preview/base/stats-12 · https://reui.io/docs/components/base/icon-tile */}