diff --git a/public/app/features/users/UsersTable.test.tsx b/public/app/features/users/UsersTable.test.tsx index b5077170968..68bba275f15 100644 --- a/public/app/features/users/UsersTable.test.tsx +++ b/public/app/features/users/UsersTable.test.tsx @@ -46,6 +46,6 @@ describe('Remove modal', () => { const wrapper = setup({ users: getMockUsers(3), }); - expect(wrapper.find(ConfirmModal).length).toEqual(4); + expect(wrapper.find(ConfirmModal).length).toEqual(0); }); }); diff --git a/public/app/features/users/UsersTable.tsx b/public/app/features/users/UsersTable.tsx index 24ddbb82d8c..2601c8342c5 100644 --- a/public/app/features/users/UsersTable.tsx +++ b/public/app/features/users/UsersTable.tsx @@ -15,8 +15,7 @@ export interface Props { const UsersTable: FC = (props) => { const { users, orgId, onRoleChange, onRemoveUser } = props; - - const [showRemoveModal, setShowRemoveModal] = useState(false); + const [userToRemove, setUserToRemove] = useState(null); const [roleOptions, setRoleOptions] = useState([]); const [builtinRoles, setBuiltinRoles] = useState<{ [key: string]: Role[] }>({}); @@ -40,90 +39,102 @@ const UsersTable: FC = (props) => { const getBuiltinRoles = async () => builtinRoles; return ( - - - - - - - - - - - - {users.map((user, index) => { - return ( - - - - - - - - - - - {contextSrv.hasPermissionInMetadata(AccessControlAction.OrgUsersRemove, user) && ( - + + + + + + + + {contextSrv.hasPermissionInMetadata(AccessControlAction.OrgUsersRemove, user) && ( + + )} + + ); + })} + +
- LoginEmailNameSeenRole -
- User avatar - - - {user.login} - - - - {user.email} - - - - {user.name} - - {user.lastSeenAtAge} - {contextSrv.accessControlEnabled() ? ( - onRoleChange(newRole, user)} - getRoleOptions={getRoleOptions} - getBuiltinRoles={getBuiltinRoles} - disabled={!contextSrv.hasPermissionInMetadata(AccessControlAction.OrgUsersRoleUpdate, user)} - /> - ) : ( - onRoleChange(newRole, user)} - /> - )} - - + + {user.login} + + + + {user.email} + + + + {user.name} + + {user.lastSeenAtAge} + {contextSrv.accessControlEnabled() ? ( + onRoleChange(newRole, user)} + getRoleOptions={getRoleOptions} + getBuiltinRoles={getBuiltinRoles} + disabled={!contextSrv.hasPermissionInMetadata(AccessControlAction.OrgUsersRoleUpdate, user)} + /> + ) : ( + onRoleChange(newRole, user)} + /> + )} + +
+ {Boolean(userToRemove) && ( + { + setUserToRemove(null); + }} + isOpen={true} + onConfirm={() => { + if (!userToRemove) { + return; + } + onRemoveUser(userToRemove); + setUserToRemove(null); + }} + /> + )} + ); }; diff --git a/public/app/features/users/__snapshots__/UsersTable.test.tsx.snap b/public/app/features/users/__snapshots__/UsersTable.test.tsx.snap index 6a28b416ace..d4555243994 100644 --- a/public/app/features/users/__snapshots__/UsersTable.test.tsx.snap +++ b/public/app/features/users/__snapshots__/UsersTable.test.tsx.snap @@ -1,510 +1,466 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[`Render should render component 1`] = ` - - - - - - - - - + + +
- - Login - - Email - - Name - - Seen - - Role - + + + + + + + + + - - -
+ + Login + + Email + + Name + + Seen + + Role + -
+ /> +
+ `; exports[`Render should render users table 1`] = ` - - - - - - - - - + + + +
- - Login - - Email - - Name - - Seen - - Role - + + + + + + + + + - - - - - + - - user-0 - - - + - + - - - - - - + - + - + + + - - user-1 test - - - - - - - - + - + - + - + - - - - - - + + + - - user-3@test.com - - - + - - - - - - + - + - + - + + + - - - - - - - - + - + - + + + + + - + User avatar + + + + + - + + + + + + + + - - -
+ + Login + + Email + + Name + + Seen + + Role + -
- User avatar - + +
- + - user-0@test.com - - - + user-0 + + - user-0 test - - - - - -
- User avatar - - + user-0@test.com + + - user-1 - - - + user-0 test + + + - user-1@test.com - - + +
- - - -
- User avatar - - + - user-2 - - - + user-1 + + - user-2@test.com - - - + user-1@test.com + + - user-2 test - - - - + user-1 test + + - -
- User avatar - - - user-3 - - + +
- + - user-3 test - - - - - -
- User avatar - - + user-2 + + - user-4 - - - + user-2@test.com + + - user-4@test.com - - - + user-2 test + + + - user-4 test - - - + +
-
- User avatar - - - user-5 - - - + - user-5@test.com - - - + user-3 + + - user-5 test - - - + user-3@test.com + + + + user-3 test + + + + + +
+ + user-4 + + + + user-4@test.com + + + + user-4 test + + - - +
+ User avatar + + + user-5 + + + + user-5@test.com + + + + user-5 test + + - -
+
+ + +
+ `;