// Copyright (C) The Arvados Authors. All rights reserved. // // SPDX-License-Identifier: AGPL-3.0 import * as React from 'react'; import { connect, DispatchProp } from 'react-redux'; import { Grid, Typography, Button, Select, FormControl } from '@material-ui/core'; import { StyleRulesCallback, WithStyles, withStyles } from '@material-ui/core/styles'; import { login, authActions } from '~/store/auth/auth-action'; import { ArvadosTheme } from '~/common/custom-theme'; import { RootState } from '~/store/store'; import * as classNames from 'classnames'; type CssRules = 'root' | 'container' | 'title' | 'content' | 'content__bolder' | 'button'; const styles: StyleRulesCallback = (theme: ArvadosTheme) => ({ root: { position: 'relative', backgroundColor: theme.palette.grey["200"], '&::after': { content: `''`, position: 'absolute', top: 0, left: 0, bottom: 0, right: 0, background: 'url("arvados-logo-big.png") no-repeat center center', opacity: 0.2, } }, container: { width: '560px', zIndex: 10 }, title: { marginBottom: theme.spacing.unit * 6, color: theme.palette.grey["800"] }, content: { marginBottom: theme.spacing.unit * 3, lineHeight: '1.2rem', color: theme.palette.grey["800"] }, 'content__bolder': { fontWeight: 'bolder' }, button: { boxShadow: 'none' } }); type LoginPanelProps = DispatchProp & WithStyles & { remoteHosts: { [key: string]: string }, homeCluster: string, uuidPrefix: string }; export const LoginPanel = withStyles(styles)( connect((state: RootState) => ({ remoteHosts: state.auth.remoteHosts, homeCluster: state.auth.homeCluster, uuidPrefix: state.auth.localCluster }))(({ classes, dispatch, remoteHosts, homeCluster, uuidPrefix }: LoginPanelProps) => Welcome to the Arvados Workbench The "Log in" button below will show you a Google sign-in page. After you assure Google that you want to log in here with your Google account, you will be redirected back here to Arvados Workbench. If you have never used Arvados Workbench before, logging in for the first time will automatically create a new account. IMPORTANT: Please keep in mind to store exploratory data only but not any information used for clinical decision making. Arvados Workbench uses your name and email address only for identification, and does not retrieve any other personal information from Google. {Object.keys(remoteHosts).length > 1 && } ));