@@ -12,6 +12,7 @@ import { gql } from 'urql';
1212
1313import UserContext from '#contexts/UserContext' ;
1414import { useLogoutMutation } from '#generated/types/graphql' ;
15+ import useAlert from '#hooks/useAlert' ;
1516
1617import styles from './styles.module.css' ;
1718
@@ -24,18 +25,20 @@ const LOGOUT = gql`
2425
2526function Navbar ( ) {
2627 const { user, setUser } = use ( UserContext ) ;
28+ const alert = useAlert ( ) ;
2729 const navigate = useNavigate ( ) ;
2830
29- const [ { fetching } , triggerLogout ] = useLogoutMutation ( ) ;
31+ const [ { fetching : pendingLogout } , triggerLogout ] = useLogoutMutation ( ) ;
3032
3133 const handleLogout = useCallback ( async ( ) => {
3234 const res = await triggerLogout ( { } ) ;
3335 const logoutResponse = res . data ?. logout ;
3436 if ( logoutResponse ) {
3537 setUser ( undefined ) ;
3638 navigate ( '/login' ) ;
39+ alert . show ( 'Logout Successful' , { variant : 'success' } ) ;
3740 }
38- } , [ navigate , triggerLogout , setUser ] ) ;
41+ } , [ navigate , triggerLogout , setUser , alert ] ) ;
3942
4043 return (
4144 < nav className = { styles . navbar } >
@@ -61,8 +64,9 @@ function Navbar() {
6164 variant = "tertiary"
6265 className = { styles . dropdownOption }
6366 onClick = { handleLogout }
67+ disabled = { pendingLogout }
6468 >
65- { fetching ? 'Logging out' : 'Logout' }
69+ { pendingLogout ? 'Logging out' : 'Logout' }
6670 </ Button >
6771 </ React . Fragment >
6872 </ DropdownMenu >
0 commit comments