Buttons hidden by permissions

This commit is contained in:
2025-03-15 16:51:13 -04:00
parent 56236fd2ac
commit a842c24d0d
44 changed files with 624 additions and 94 deletions

View File

@@ -1,3 +1,4 @@
import { AccountPermission } from "@/interface/AccountPermission";
import { GamePermission } from "@/interface/GamePermission";
import { RaidGroupPermission } from "@/interface/RaidGroupPermission";
import { RaidGroupRequest } from "@/interface/RaidGroupRequest";
@@ -18,6 +19,7 @@ type AuthProviderState = {
expiration: Date | null;
setExpiration: (expiration: Date | null) => void;
accountId: string | null;
accountPermissions: AccountPermission[];
raidGroupPermissions: RaidGroupPermission[];
gamePermissions: GamePermission[];
raidGroupRequests: RaidGroupRequest[];
@@ -29,6 +31,7 @@ const initialState: AuthProviderState = {
expiration: null,
setExpiration: () => null,
accountId: null,
accountPermissions: [],
raidGroupPermissions: [],
gamePermissions: [],
raidGroupRequests: []
@@ -44,6 +47,7 @@ export function AuthProvider({
const [ expiration, setExpiration ] = useState<Date | null>(null);
const [ firstFetch, setFirstFetch ] = useState(true);
const [ accountId, setAccountId ] = useState<string | null>(null);
const [ accountPermissions, setAccountPermissions ] = useState<AccountPermission[]>([]);
const [ raidGroupPermissions, setRaidGroupPermissions ] = useState<RaidGroupPermission[]>([]);
const [ gamePermissions, setGamePermissions ] = useState<GamePermission[]>([]);
const [ raidGroupRequests, setRaidGroupRequests ] = useState<RaidGroupRequest[]>([]);
@@ -62,6 +66,7 @@ export function AuthProvider({
setExpiration(new Date(decodedToken.exp * 1000));
setFirstFetch(false);
setAccountId(decodedToken.accountId);
setAccountPermissions(JSON.parse(decodedToken.accountPermissions));
setRaidGroupPermissions(JSON.parse(decodedToken.raidGroupPermissions));
setGamePermissions(JSON.parse(decodedToken.gamePermissions));
setRaidGroupRequests(JSON.parse(decodedToken.raidGroupRequests));
@@ -114,10 +119,11 @@ export function AuthProvider({
expiration,
setExpiration,
accountId,
accountPermissions,
raidGroupPermissions,
gamePermissions,
raidGroupRequests
}), [ jwt, setJwt, expiration, setExpiration, accountId, raidGroupPermissions, gamePermissions, raidGroupRequests ]);
}), [ jwt, setJwt, expiration, setExpiration, accountId, accountPermissions, raidGroupPermissions, gamePermissions, raidGroupRequests ]);
//TODO: Return a spinner while the first token is being fetched