17 lines
450 B
TypeScript
17 lines
450 B
TypeScript
|
|
"use client";
|
||
|
|
|
||
|
|
import { useSession } from "next-auth/react";
|
||
|
|
|
||
|
|
export type Role = "admin" | "superadmin";
|
||
|
|
|
||
|
|
export function useRole(): { role: Role | null; isSuperadmin: boolean; authed: boolean } {
|
||
|
|
const { data: session, status } = useSession();
|
||
|
|
const role =
|
||
|
|
(session?.user as { role?: Role } | undefined)?.role ?? null;
|
||
|
|
return {
|
||
|
|
role,
|
||
|
|
isSuperadmin: role === "superadmin",
|
||
|
|
authed: status === "authenticated" && !!session,
|
||
|
|
};
|
||
|
|
}
|