diff --git a/components/session/confirmation-alert.js b/components/session/confirmation-alert.js new file mode 100644 index 0000000..91c91a9 --- /dev/null +++ b/components/session/confirmation-alert.js @@ -0,0 +1,41 @@ +import PropTypes from 'prop-types' +import Button from '@mui/material/Button' +import Dialog from '@mui/material/Dialog' +import DialogActions from '@mui/material/DialogActions' +import DialogContent from '@mui/material/DialogContent' +import DialogContentText from '@mui/material/DialogContentText' +import DialogTitle from '@mui/material/DialogTitle' + +export default function ConfirmationAlert({title, description, isOpen, setIsOpen, handleConfirmation}) { + return ( + setIsOpen(false)} + > + + {title} + + + + {description} + + + + + + + + ) +} + +ConfirmationAlert.propTypes = { + title: PropTypes.string.isRequired, + description: PropTypes.string.isRequired, + isOpen: PropTypes.bool.isRequired, + setIsOpen: PropTypes.func.isRequired, + handleConfirmation: PropTypes.func.isRequired +} diff --git a/components/session/sign.js b/components/session/sign.js index 1f1a6b0..1e142ee 100644 --- a/components/session/sign.js +++ b/components/session/sign.js @@ -1,6 +1,7 @@ 'use client' import PropTypes from 'prop-types' +import {useState} from 'react' import {signOut} from 'next-auth/react' import {useRouter} from 'next/navigation' import Box from '@mui/material/Box' @@ -11,6 +12,7 @@ import Tooltip, {tooltipClasses} from '@mui/material/Tooltip' import LogoutIcon from '@mui/icons-material/Logout' import LoginIcon from '@mui/icons-material/Login' import PersonAddIcon from '@mui/icons-material/PersonAdd' +import ConfirmationAlert from './confirmation-alert.js' const LightTooltip = styled(({className, ...props}) => ( @@ -25,30 +27,45 @@ const LightTooltip = styled(({className, ...props}) => ( export default function Sign({session}) { const router = useRouter() + const [isOpen, setIsOpen] = useState(false) + + const handleSignout = () => { + setIsOpen(false) + signOut() + } return ( - - {session ? ( - - signOut()}> - - - - ) : ( - - - router.push('/login')}> - + <> + + {session ? ( + + setIsOpen(true)}> + - - router.push('/register')}> - - - - - )} - + ) : ( + + + router.push('/login')}> + + + + + router.push('/register')}> + + + + + )} + + + ) }