diff --git a/frontend/src/components/AdminUsers.tsx b/frontend/src/components/AdminUsers.tsx index 078ae9c..356b99d 100644 --- a/frontend/src/components/AdminUsers.tsx +++ b/frontend/src/components/AdminUsers.tsx @@ -6,6 +6,7 @@ import { api, type AdminUserRow, type Invite, type Me } from "../lib/api"; import { notify } from "../lib/notifications"; import { LS } from "../lib/storage"; import Tooltip from "./Tooltip"; +import { Section } from "./ui/form"; import { useConfirm } from "./ConfirmProvider"; import Tabs, { usePersistedTab } from "./Tabs"; @@ -41,15 +42,6 @@ export default function AdminUsers({ me }: { me: Me }) { ); } -function Section({ title, children }: { title: string; children: React.ReactNode }) { - return ( -
{t("users.roles.intro")}
{rows.length === 0 ? ({t("users.roles.empty")}
@@ -266,7 +258,7 @@ function AdminInvites() { const decided = list.filter((i) => i.status !== "pending"); return ( -{t("settings.invites.noPending")}
) : ( @@ -360,7 +352,7 @@ function AdminDemo() { const rows = list.data ?? []; return ( -{t("settings.demo.intro")}
{rows.length > 0 && ( diff --git a/frontend/src/components/ConfigPanel.tsx b/frontend/src/components/ConfigPanel.tsx index 1da0e7a..8fa14b2 100644 --- a/frontend/src/components/ConfigPanel.tsx +++ b/frontend/src/components/ConfigPanel.tsx @@ -6,6 +6,7 @@ import { api, type ConfigItem } from "../lib/api"; import { notify } from "../lib/notifications"; import Tooltip from "./Tooltip"; import Tabs, { usePersistedTab } from "./Tabs"; +import { Switch } from "./ui/form"; // Admin Configuration page: edit DB-overridable operational settings (registry-driven from the // backend — adding a key there makes it appear here automatically). Edits are drafted and @@ -241,7 +242,7 @@ function Field({