18559: Update user profile cypress tests and fix minor issues
[arvados-workbench2.git] / src / views-components / data-explorer / renderers.tsx
index 51b7dcc839274e858ef37ffde0c7f2ac276929eb..e854da0ee6caeebfdfd41af58dc8a081b58ecf0e 100644 (file)
@@ -50,6 +50,7 @@ import { PermissionLevel } from 'models/permission';
 import { openPermissionEditContextMenu } from 'store/context-menu/context-menu-actions';
 import { getUserUuid } from 'common/getuser';
 import { VirtualMachinesResource } from 'models/virtual-machines';
+import { CopyToClipboardSnackbar } from 'components/copy-to-clipboard-snackbar/copy-to-clipboard-snackbar';
 
 const renderName = (dispatch: Dispatch, item: GroupContentsResource) => {
 
@@ -192,15 +193,15 @@ export const UserResourceFullName = connect(
         return {item: resource || { uuid: '', firstName: '', lastName: '' }, link: props.link};
     })((props: {item: {uuid: string, firstName: string, lastName: string}, link?: boolean} & DispatchProp<any>) => renderFullName(props.dispatch, props.item, props.link));
 
-
 const renderUuid = (item: { uuid: string }) =>
-    <Typography data-cy="uuid" noWrap>{item.uuid}</Typography>;
+    <Typography data-cy="uuid" noWrap>
+        {item.uuid}
+        <CopyToClipboardSnackbar value={item.uuid} />
+    </Typography>;
 
-export const ResourceUuid = connect(
-    (state: RootState, props: { uuid: string }) => {
-        const resource = getResource<UserResource>(props.uuid)(state.resources);
-        return resource || { uuid: '' };
-    })(renderUuid);
+export const ResourceUuid = connect((state: RootState, props: { uuid: string }) => (
+        getResource<UserResource>(props.uuid)(state.resources) || { uuid: '' }
+    ))(renderUuid);
 
 const renderEmail = (item: { email: string }) =>
     <Typography noWrap>{item.email}</Typography>;
@@ -219,16 +220,16 @@ enum UserAccountStatus {
 }
 
 const renderAccountStatus = (props: {status: UserAccountStatus}) =>
-    <Grid container alignItems="center" wrap="nowrap" spacing={8}>
+    <Grid container alignItems="center" wrap="nowrap" spacing={8} data-cy="account-status">
         <Grid item>
             {(() => {
                 switch(props.status) {
                     case UserAccountStatus.ACTIVE:
-                        return <ActiveIcon style={{color: '#4caf50'}} />;
+                        return <ActiveIcon style={{color: '#4caf50', verticalAlign: "middle"}} />;
                     case UserAccountStatus.SETUP:
-                        return <SetupIcon style={{color: '#2196f3'}} />;
+                        return <SetupIcon style={{color: '#2196f3', verticalAlign: "middle"}} />;
                     case UserAccountStatus.INACTIVE:
-                        return <InactiveIcon style={{color: '#9e9e9e'}} />;
+                        return <InactiveIcon style={{color: '#9e9e9e', verticalAlign: "middle"}} />;
                     default:
                         return <></>;
                 }