plebdevs/src/hooks/useIsAdmin.js

24 lines
658 B
JavaScript
Raw Normal View History

import { useEffect, useState } from 'react';
import { useSession } from 'next-auth/react';
export function useIsAdmin() {
const { data: session, status } = useSession();
const [isAdmin, setIsAdmin] = useState(false);
2024-09-12 12:07:38 -05:00
const [isLoading, setIsLoading] = useState(true);
useEffect(() => {
2024-09-12 12:07:38 -05:00
if (status === 'loading') {
setIsLoading(true);
return;
}
if (status === 'authenticated') {
setIsAdmin(session?.user?.role?.admin || false);
2024-09-12 12:07:38 -05:00
setIsLoading(false);
} else if (status === 'unauthenticated') {
setIsAdmin(false);
2024-09-12 12:07:38 -05:00
setIsLoading(false);
}
}, [session, status]);
2024-09-12 12:07:38 -05:00
return { isAdmin, isLoading };
}