import { useState } from 'react'
import Avatar from '@material-ui/core/Avatar'
import Button from '@material-ui/core/Button'
import TextField from '@material-ui/core/TextField'
import FormControlLabel from '@material-ui/core/FormControlLabel'
import Checkbox from '@material-ui/core/Checkbox'
import Link from '@material-ui/core/Link'
import Grid from '@material-ui/core/Grid'
import LockOutlinedIcon from '@material-ui/icons/LockOutlined'
import Typography from '@material-ui/core/Typography'
import Container from '@material-ui/core/Container'
import { connect } from 'react-redux'
import { bindActionCreators, Dispatch } from 'redux'
import { selectAuthState } from '../../../redux/auth/selector'
import { loginUserByPassword, addConnectionByPassword } from '../../../redux/auth/service'
import { showDialog, closeDialog } from '../../../redux/dialog/service'
import SignUp from './Register'
import ForgotPassword from './ForgotPassword'
import './style.scss'
import { User } from '../../../interfaces/User'
const mapStateToProps = (state: any) => {
return {
auth: selectAuthState(state)
}
}
const mapDispatchToProps = (dispatch: Dispatch) => ({
loginUserByPassword: bindActionCreators(loginUserByPassword, dispatch),
addConnectionByPassword: bindActionCreators(
addConnectionByPassword,
dispatch
),
showDialog: bindActionCreators(showDialog, dispatch),
closeDialog: bindActionCreators(closeDialog, dispatch)
})
const initialState = { email: '', password: '' }
interface Props {
auth: any
isAddConnection?: boolean
addConnectionByPassword: typeof addConnectionByPassword
loginUserByPassword: typeof loginUserByPassword
closeDialog: typeof closeDialog
showDialog: typeof showDialog
}
export const PasswordLogin = (props: Props) => {
const {
auth,
isAddConnection,
addConnectionByPassword,
loginUserByPassword,
closeDialog,
showDialog
} = props
const [state, setState] = useState(initialState)
const handleInput = (e: any) =>
setState({ ...state, [e.target.name]: e.target.value })
const handleEmailLogin = (e: any) => {
e.preventDefault()
if (isAddConnection) {
const user = auth.get('user') as User
const userId = user ? user.id : ''
addConnectionByPassword(
{
email: state.email,
password: state.password
},
userId
)
closeDialog()
} else {
loginUserByPassword({
email: state.email,
password: state.password
})
}
}
return (
)
}
const PasswordLoginWrapper = (props: any) =>
export default connect(
mapStateToProps,
mapDispatchToProps
)(PasswordLoginWrapper)