From 8f0407c49ced67be59c94384696d66ea03181b4f Mon Sep 17 00:00:00 2001 From: DEls Date: Wed, 30 Sep 2026 01:00:42 +0200 Subject: [PATCH] Improve user settings layout and forms on mobile --- .../dashboard/settings/users/users-view.tsx | 52 +++++++++++++------ 1 file changed, 36 insertions(+), 16 deletions(-) diff --git a/src/app/dashboard/settings/users/users-view.tsx b/src/app/dashboard/settings/users/users-view.tsx index 07bd55d..39ca083 100644 --- a/src/app/dashboard/settings/users/users-view.tsx +++ b/src/app/dashboard/settings/users/users-view.tsx @@ -33,15 +33,35 @@ export function UsersView({ users, sites, isAdmin }: { users: ManagedUser[]; sit function edit(user: ManagedUser) { setSelected(user); setFormKey((key) => key + 1); setOpen(true); } return ( -
-
+
+

Users

{isAdmin ? "Admins manage all sites and users. Clock users start in the clock app." : "Add clock users for your assigned sites. They can scan staff, vehicles and delivery notes in the clock app."}

- +
-
+
+ {users.map((user) => ( +
+
+
+

{user.name || user.email}

+

{user.email}

+

{ROLE_LABELS[user.role]}

+
+ {isAdmin && } +
+
{user.is_active ? "Active" : "Inactive"}{user.must_change_password && Password change}
+
+

Site access

+

{user.role === "admin" ? "All sites" : user.sites.map((id) => sites.find((site) => site.id === id)?.name ?? id).join(", ") || "No sites"}

+
+
+ ))} +
+ {users.length === 0 &&

No users yet. Add a user to get started.

} +
@@ -101,29 +121,29 @@ function UserDialog({ open, onOpenChange, user, sites, isAdmin }: { return ( { if (!busy) onOpenChange(next); }}> - - {user ? "Edit user" : "Add user"} -
- - + + {user ? "Edit user" : "Add user"} + + + - {role !== "admin" &&
Allowed sites -
{sites.map((site) => )}
+ {role !== "admin" &&
Allowed sites +
{sites.map((site) => )}
} {user &&
- - + +
} {!user &&

The user will choose a new password at first sign-in. You can change the initial password above.

} {error &&

{error}

} - +
NameRoleSitesStatusEdit