diff --git a/dashy.db b/dashy.db index db8c5ff..f3bda5a 100644 Binary files a/dashy.db and b/dashy.db differ diff --git a/screens.jsx b/screens.jsx index 125f302..132071c 100644 --- a/screens.jsx +++ b/screens.jsx @@ -919,6 +919,26 @@ function WorkspaceTab({ user, isAdmin, dbUsers = [], onSwitchUser, onCreateUser, const [wsTz, setWsTz] = React.useState(workspace ? workspace.timezone : ''); const [wsSaved, setWsSaved] = React.useState(false); + // User editing state + const [editingUserId, setEditingUserId] = React.useState(null); + const [editName, setEditName] = React.useState(''); + const [editRole, setEditRole] = React.useState(''); + + const startEditing = (u) => { + setEditingUserId(u.id); + setEditName(u.name); + setEditRole(u.role); + }; + + const cancelEditing = () => { + setEditingUserId(null); + }; + + const saveUserEdit = async (id) => { + await onUpdateUserRole(id, { name: editName, role: editRole }); + setEditingUserId(null); + }; + React.useEffect(() => { if (workspace) { setWsName(workspace.name); @@ -1003,25 +1023,53 @@ function WorkspaceTab({ user, isAdmin, dbUsers = [], onSwitchUser, onCreateUser, {dbUsers.map(u => (
  • -
    -
    {u.name}
    -
    {u.role} · {u.email || (u.id + '@murchison-auto.co')}
    +
    + {editingUserId === u.id ? ( +
    + setEditName(e.target.value)} autoFocus /> + setEditRole(e.target.value)} /> +
    + ) : ( + <> +
    + {u.name} + {isAdmin && ( + + )} +
    +
    {u.role} · {u.email || (u.id + '@murchison-auto.co')}
    + + )} +
    + +
    + {editingUserId === u.id ? ( +
    + + +
    + ) : ( + <> + {isAdmin ? ( +
    + + +
    + ) : ( + {u.account_type} + )} + {isAdmin && u.id !== user.id && ( + + )} + + )}
    - {isAdmin ? ( -
    - - -
    - ) : ( - {u.account_type} - )} - {isAdmin && u.id !== user.id && ( - - )}
  • ))}