Skip to content
Snippets Groups Projects
Select Git revision
  • 2b2fcfc5610082f286a4ae25f0757374e3a54512
  • main default protected
  • userHandling
  • snuggle
4 results

Logout.jsx

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    Logout.jsx 1.06 KiB
    import React, { useEffect } from 'react';
    import { useNavigate } from 'react-router-dom';
    import { useAuth } from '../../contexts/Auth/AuthState';
    import { setFlashMsg } from '../../utils/ErrorHandling';
    
    function Logout() {
      // #################################
      // HOOKS
      // #################################
      // ### CONNECT AUTH CONTEXT
      const { logout } = useAuth();
    
      // ### LOGOUT IMMEDIATLY AFTER LOADING
      useEffect(() => {
        handleLogout();
      }, []);
      // ### ENABLE Redirections
      const redirect = useNavigate();
    
      // #################################
      // FUNCTIONS
      // #################################
    
      async function handleLogout() {
        try {
          const result = await logout();
          redirect('/login');
          // set flash msg
          setFlashMsg(result.data?.msg);
        } catch (err) {
          mergeBackendValidation(500, err);
        }
      }
    
      // #################################
      // OUTPUT
      // #################################
      return (
        <div>You're about to log out</div>
      );
    }
    
    export default React.memo(Logout);