feat: refactor organization membership logic and simplify admin role checks

This commit is contained in:
Abhimanyu Saharan
2026-02-08 23:49:34 +05:30
parent cd732e312f
commit a4aced9a88
12 changed files with 55 additions and 187 deletions

View File

@@ -0,0 +1,33 @@
import { ApiError } from "@/api/mutator";
import {
type getMyMembershipApiV1OrganizationsMeMemberGetResponse,
useGetMyMembershipApiV1OrganizationsMeMemberGet,
} from "@/api/generated/organizations/organizations";
export const isOrganizationAdminRole = (
role: string | null | undefined,
): boolean => role === "owner" || role === "admin";
export function useOrganizationMembership(
isSignedIn: boolean | null | undefined,
) {
const membershipQuery = useGetMyMembershipApiV1OrganizationsMeMemberGet<
getMyMembershipApiV1OrganizationsMeMemberGetResponse,
ApiError
>({
query: {
enabled: Boolean(isSignedIn),
refetchOnMount: "always",
retry: false,
},
});
const member =
membershipQuery.data?.status === 200 ? membershipQuery.data.data : null;
return {
membershipQuery,
member,
isAdmin: isOrganizationAdminRole(member?.role),
};
}