X-Git-Url: https://git.arvados.org/arvados-workbench2.git/blobdiff_plain/b7a4d46fe2b011cdb6e38ed42e9f886fee8290b8..c952afae1af2fb31b68be04f70bd7ae6f9d52aba:/src/views/my-account-panel/my-account-panel-root.tsx diff --git a/src/views/my-account-panel/my-account-panel-root.tsx b/src/views/my-account-panel/my-account-panel-root.tsx index 45875770..02a8ba67 100644 --- a/src/views/my-account-panel/my-account-panel-root.tsx +++ b/src/views/my-account-panel/my-account-panel-root.tsx @@ -2,14 +2,26 @@ // // SPDX-License-Identifier: AGPL-3.0 -import * as React from 'react'; -import { Field, InjectedFormProps } from "redux-form"; -import { TextField } from "~/components/text-field/text-field"; -import { StyleRulesCallback, WithStyles, withStyles, Card, CardContent, Button, Typography, Grid, Table, TableHead, TableRow, TableCell, TableBody, Tooltip, IconButton } from '@material-ui/core'; -import { ArvadosTheme } from '~/common/custom-theme'; -import { User } from "~/models/user"; +import React from 'react'; +import { Field, InjectedFormProps, WrappedFieldProps } from "redux-form"; +import { TextField } from "components/text-field/text-field"; +import { NativeSelectField } from "components/select-field/select-field"; +import { + StyleRulesCallback, + WithStyles, + withStyles, + Card, + CardContent, + Button, + Typography, + Grid, + InputLabel +} from '@material-ui/core'; +import { ArvadosTheme } from 'common/custom-theme'; +import { User } from "models/user"; +import { MY_ACCOUNT_VALIDATION } from "validators/validators"; -type CssRules = 'root' | 'gridItem' | 'title'; +type CssRules = 'root' | 'gridItem' | 'label' | 'title' | 'actions'; const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ root: { @@ -20,104 +32,133 @@ const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ height: 45, marginBottom: 20 }, + label: { + fontSize: '0.675rem' + }, title: { marginBottom: theme.spacing.unit * 3, color: theme.palette.grey["600"] + }, + actions: { + display: 'flex', + justifyContent: 'flex-end' } }); -export interface MyAccountPanelRootActionProps {} +export interface MyAccountPanelRootActionProps { } export interface MyAccountPanelRootDataProps { - user?: User; + isPristine: boolean; + isValid: boolean; + initialValues?: User; + localCluster: string; } -export const MY_ACCOUNT_FORM = 'myAccountForm'; +const RoleTypes = [ + { key: 'Bio-informatician', value: 'Bio-informatician' }, + { key: 'Data Scientist', value: 'Data Scientist' }, + { key: 'Analyst', value: 'Analyst' }, + { key: 'Researcher', value: 'Researcher' }, + { key: 'Software Developer', value: 'Software Developer' }, + { key: 'System Administrator', value: 'System Administrator' }, + { key: 'Other', value: 'Other' } +]; type MyAccountPanelRootProps = InjectedFormProps & MyAccountPanelRootDataProps & WithStyles; +type LocalClusterProp = { localCluster: string }; +const renderField: React.ComponentType = ({ input, localCluster }) => ( + {localCluster === input.value.substr(0, 5) ? "" : "federated"} user {input.value} +); + export const MyAccountPanelRoot = withStyles(styles)( - ({ classes, user }: MyAccountPanelRootProps) => { - console.log(user); + ({ classes, isValid, handleSubmit, reset, isPristine, invalid, submitting, localCluster }: MyAccountPanelRootProps) => { return - User profile - - - + + Logged in as + +
+ + - + - + - + - + - + - - - - + + Role - - + + + + + - - - ;} -); \ No newline at end of file + +
+
; + } +);