import {useEffect, useState} from 'react'
import {signIn} from 'next-auth/client'
import {useRouter} from 'next/router'
import PropTypes from 'prop-types'
import Link from 'next/link'
import {
Box,
Button,
Container,
FormControl,
IconButton,
Input,
InputAdornment,
InputLabel,
LinearProgress,
Snackbar,
Typography
} from '@material-ui/core'
import {Visibility, VisibilityOff} from '@material-ui/icons'
import MuiAlert from '@material-ui/lab/Alert'
import {Google} from '@icons-pack/react-simple-icons'
import {validateEmail} from '../../lib/utils/emails'
import LoginProvider from './login-provider'
const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || 'http://localhost:3000'
const PROVIDERS = [
{
id: 'google',
title: 'Google',
icon:
}
]
function Alert(props) {
return
}
function Koneksyon({detay, tit, soutit, titGwose, chimen}) {
const [loginError, setError] = useState('')
const [credentials, setCredentials] = useState({username: '', password: ''})
const [showPassword, setShowPassword] = useState(false)
const [loading, setLoading] = useState(false)
const [open, setOpen] = useState(true)
const router = useRouter()
const handleUpdate = update => {
setCredentials({...credentials, ...update})
}
const handleClick = async () => {
if (!validateEmail(credentials.username) || credentials.password === '') {
return
}
setLoading(true)
const response = await signIn('credentials', {
callbackUrl: `${siteUrl}${chimen}`,
redirect: false,
...credentials
})
if (response.error) {
setError(response.error)
setLoading(false)
} else if (response.ok) {
setLoading(false)
router.push(chimen)
}
}
const handleClose = (event, reason) => {
if (reason === 'clickaway') {
return
}
setOpen(false)
setError('')
}
useEffect(() => {
if (loginError) {
setOpen(true)
}
return () => {
setLoading(false)
}
}, [loginError])
const handleClickShowPassword = () => {
setShowPassword(!showPassword)
}
const handleMouseDownPassword = event => {
event.preventDefault()
}
const handleKeyUp = event => {
if (event.keyCode === 13) {
handleClick()
}
}
return (
{tit && (
{tit}
{soutit && (
{soutit}
)}
)}
Email
handleUpdate({username: event.target.value})}
onKeyUp={handleKeyUp}
/>
Mot de passe
{showPassword ? : }
}
onChange={event => handleUpdate({password: event.target.value})}
onKeyUp={handleKeyUp}
/>
{loading && }
{detay && (
Pour obtenir un accès, faites-en la demande
📩
kontak@o-k-i.net
)}
{PROVIDERS.map(({id, title, icon}) => (
))}
{loginError && (
{loginError}
)}
)
}
Koneksyon.defaultProps = {
detay: false,
tit: null,
soutit: null,
titGwose: 5
}
Koneksyon.propTypes = {
detay: PropTypes.bool,
tit: PropTypes.string,
soutit: PropTypes.string,
titGwose: PropTypes.number,
chimen: PropTypes.string.isRequired
}
export default Koneksyon