14841: Add inactive user page.
[arvados-workbench2.git] / src / views-components / dialog-forms / setup-shell-account-dialog.tsx
index 8b9a6b612cf6cd3b70a12bce654b5835a56fecf1..c53f53c2ad90346572ff53cdf7ccd7a975238218 100644 (file)
@@ -12,6 +12,7 @@ import { USER_LENGTH_VALIDATION } from '~/validators/validators';
 import { InputLabel } from '@material-ui/core';
 import { NativeSelectField } from '~/components/select-field/select-field';
 import { SETUP_SHELL_ACCOUNT_DIALOG, createUser } from '~/store/users/users-actions';
+import { UserResource } from '~/models/user';
 
 interface SetupShellAccountFormDialogData {
     email: string;
@@ -37,14 +38,31 @@ export const SetupShellAccountDialog = compose(
         />
 );
 
-const UserEmailField = ({ data }: any) =>
-    <Field
-        name='email'
-        component={TextField}
-        disabled
-        label={data.user.email} />;
+interface UserProps {
+    data: {
+        user: UserResource;
+    };
+}
+
+interface VirtualMachinesProps {
+    data: {
+        items: VirtualMachinesResource[];
+    };
+}
+interface DataProps {
+    user: UserResource;
+    items: VirtualMachinesResource[];
+}
+
+const UserEmailField = ({ data }: UserProps) =>
+    <span>
+        <Field
+            name='email'
+            component={TextField}
+            disabled
+            label={data.user.email} /></span>;
 
-const UserVirtualMachineField = ({ data }: any) =>
+const UserVirtualMachineField = ({ data }: VirtualMachinesProps) =>
     <div style={{ marginBottom: '21px' }}>
         <InputLabel>Virtual Machine</InputLabel>
         <Field
@@ -61,17 +79,15 @@ const UserGroupsVirtualMachineField = () =>
         validate={USER_LENGTH_VALIDATION}
         label="Groups for virtual machine (comma separated list)" />;
 
-const getVirtualMachinesList = (virtualMachines: VirtualMachinesResource[]) => {
-    const mappedVirtualMachines = virtualMachines.map(it => ({ key: it.hostname, value: it.hostname }));
-    return mappedVirtualMachines;
-};
+const getVirtualMachinesList = (virtualMachines: VirtualMachinesResource[]) =>
+    virtualMachines.map(it => ({ key: it.hostname, value: it.hostname }));
 
 type SetupShellAccountDialogComponentProps = WithDialogProps<{}> & InjectedFormProps<SetupShellAccountFormDialogData>;
 
 const SetupShellAccountFormFields = (props: SetupShellAccountDialogComponentProps) =>
     <>
-        <UserEmailField data={props.data}/>
-        <UserVirtualMachineField data={props.data} />
+        <UserEmailField data={props.data as DataProps} />
+        <UserVirtualMachineField data={props.data as DataProps} />
         <UserGroupsVirtualMachineField />
     </>;