mirror of
https://github.com/khairul169/vaulterm.git
synced 2025-04-28 16:49:39 +07:00
38 lines
777 B
TypeScript
38 lines
777 B
TypeScript
import authRepo from "@/repositories/auth";
|
|
import { useQuery } from "@tanstack/react-query";
|
|
|
|
export const useUser = () => {
|
|
const { data: user } = useQuery({
|
|
queryKey: ["auth", "user"],
|
|
queryFn: authRepo.getUser,
|
|
});
|
|
|
|
if (!user) {
|
|
return null;
|
|
}
|
|
|
|
function getTeamRole(teamId?: string | null) {
|
|
if (!user.teams?.length) {
|
|
return false;
|
|
}
|
|
const team = user.teams.find((i: any) => i.id === teamId);
|
|
return team?.role;
|
|
}
|
|
|
|
function isInTeam(teamId?: string | null) {
|
|
return getTeamRole(teamId) != null;
|
|
}
|
|
|
|
function teamCanWrite(teamId?: string | null) {
|
|
const role = getTeamRole(teamId);
|
|
return ["admin", "owner"].includes(role);
|
|
}
|
|
|
|
return {
|
|
...user,
|
|
getTeamRole,
|
|
isInTeam,
|
|
teamCanWrite,
|
|
};
|
|
};
|