2021-06-26 12:20:52 +02:00
|
|
|
import {useState} from 'react'
|
2022-01-19 06:35:04 +04:00
|
|
|
import {styled} from '@mui/material/styles'
|
2021-06-26 12:20:52 +02:00
|
|
|
import PropTypes from 'prop-types'
|
|
|
|
|
import Link from 'next/link'
|
|
|
|
|
import {signOut} from 'next-auth/client'
|
2022-01-19 06:35:04 +04:00
|
|
|
import {Tooltip, Fab, Zoom} from '@material-ui/core'
|
2021-06-26 12:20:52 +02:00
|
|
|
import ExitToAppIcon from '@material-ui/icons/ExitToApp'
|
|
|
|
|
|
|
|
|
|
import Alet from '../alet'
|
|
|
|
|
|
2022-01-19 06:35:04 +04:00
|
|
|
const PREFIX = 'Dekoneksyon'
|
|
|
|
|
|
|
|
|
|
const classes = {
|
|
|
|
|
tooltip: `${PREFIX}-tooltip`,
|
|
|
|
|
dekoneksyon: `${PREFIX}-dekoneksyon`
|
|
|
|
|
}
|
2021-06-26 12:20:52 +02:00
|
|
|
|
2022-01-19 06:35:04 +04:00
|
|
|
const Root = styled('div')(() => ({
|
|
|
|
|
[`& .${classes.dekoneksyon}`]: {
|
2021-06-26 12:20:52 +02:00
|
|
|
position: props => props.position,
|
|
|
|
|
top: props => props.top,
|
|
|
|
|
left: props => props.left
|
|
|
|
|
}
|
|
|
|
|
}))
|
|
|
|
|
|
2022-01-19 06:35:04 +04:00
|
|
|
const siteUrl = process.env.NEXT_PUBLIC_SITE_URL || 'http://localhost:3000'
|
|
|
|
|
|
|
|
|
|
const DekoneksonTooltip = Tooltip
|
2021-06-26 12:20:52 +02:00
|
|
|
|
2022-01-19 06:35:04 +04:00
|
|
|
function Dekoneksyon({chimen, tooltipPlacement}) {
|
2021-06-26 12:20:52 +02:00
|
|
|
const [esOuve, meteEsOuve] = useState(false)
|
|
|
|
|
|
|
|
|
|
const handleDekonekte = event => {
|
|
|
|
|
event.preventDefault()
|
|
|
|
|
signOut({callbackUrl: `${siteUrl}${chimen}`})
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return (
|
2022-01-19 06:35:04 +04:00
|
|
|
(
|
|
|
|
|
<Root>
|
|
|
|
|
<Link passHref href='/api/auth/signout'>
|
|
|
|
|
<DekoneksonTooltip
|
|
|
|
|
title='Dékoneksyon'
|
|
|
|
|
placement={tooltipPlacement}
|
|
|
|
|
TransitionComponent={Zoom}
|
|
|
|
|
classes={{
|
|
|
|
|
tooltip: classes.tooltip
|
|
|
|
|
}}
|
2021-06-26 12:20:52 +02:00
|
|
|
>
|
2022-01-19 06:35:04 +04:00
|
|
|
<Fab
|
|
|
|
|
className={classes.dekoneksyon}
|
|
|
|
|
color='secondary'
|
|
|
|
|
aria-label='logout'
|
|
|
|
|
size='small'
|
|
|
|
|
onClick={() => meteEsOuve(true)}
|
|
|
|
|
>
|
|
|
|
|
<ExitToAppIcon />
|
|
|
|
|
</Fab>
|
|
|
|
|
</DekoneksonTooltip>
|
|
|
|
|
</Link>
|
|
|
|
|
<Alet esOuve={esOuve} meteEsOuve={meteEsOuve} handleKonfime={handleDekonekte} />
|
|
|
|
|
</Root>
|
|
|
|
|
)
|
2021-06-26 12:20:52 +02:00
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Dekoneksyon.defaultProps = {
|
|
|
|
|
tooltipPlacement: 'left'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
Dekoneksyon.propTypes = {
|
|
|
|
|
chimen: PropTypes.string.isRequired,
|
|
|
|
|
tooltipPlacement: PropTypes.string
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default Dekoneksyon
|