import React, { useEffect, useState, useCallback } from 'react'; import { Form, Field } from 'react-final-form'; import { OnChange } from 'react-final-form-listeners'; import Button from '@material-ui/core/Button'; import { AuthenticationService } from 'api'; import { CheckboxField, InputField, KnownHosts } from 'components'; import { useAutoConnect } from 'hooks'; import { HostDTO, SettingDTO } from 'services'; import { APP_USER } from 'types'; import './LoginForm.css'; const PASSWORD_LABEL = 'Password'; const STORED_PASSWORD_LABEL = '* SAVED *'; const LoginForm = ({ onSubmit, disableSubmitButton, onResetPassword }: LoginFormProps) => { const [host, setHost] = useState(null); const [passwordLabel, setPasswordLabel] = useState(PASSWORD_LABEL); const [autoConnect, setAutoConnect] = useAutoConnect(); const validate = values => { const errors: any = {}; if (!values.userName) { errors.userName = 'Required'; } if (!values.selectedHost) { errors.selectedHost = 'Required'; } return errors; } const useStoredPassword = (remember) => remember && host.hashedPassword; const togglePasswordLabel = (useStoredLabel) => { setPasswordLabel(useStoredLabel ? STORED_PASSWORD_LABEL : PASSWORD_LABEL); }; const handleOnSubmit = ({ userName, ...values }) => { userName = userName?.trim(); onSubmit({ userName, ...values }); } return (
) }} ); }; interface LoginFormProps { onSubmit: any; disableSubmitButton: boolean, onResetPassword: any; } export default LoginForm;