Skip to content
Snippets Groups Projects
useRole.ts 662 B
Newer Older
import { getRole } from 'api/getRole';
import { useEffect, useState } from 'react';

export const useRole = (): [
  string,
  React.Dispatch<React.SetStateAction<string>>,
] => {
  const [role, setRole] = useState('');
  const [isLoading, setIsLoading] = useState(true);

  useEffect(() => {
    let isMounted = true;
    // Initialize asking the server if this session is already logged in.

    getRole().then((responseRole) => {
      if (isMounted) {
        setRole(responseRole);
        if (role !== null) setIsLoading(false);
      }
    });
    return () => {
      isMounted = false;
    };
  }, []);
  return [role, setRole, isLoading];