quivr/frontend/app/brains-management/[brainId]/components/BrainManagementTabs/utils/getBrainPermissions.ts
Mamadou DICKO 48bdbbb3e9
feat(publicBrain): disable subscribe button when already subscribed and refetch brains list (#1246)
* feat(brainSettings): add getBrainPermissions

* feat(publicBrain): disable subscription button when already subscribed

* feat(publicBrains): refecth brains list onSubscribe
2023-09-22 12:37:50 +02:00

33 lines
805 B
TypeScript

import { UUID } from "crypto";
import { MinimalBrainForUser } from "@/lib/context/BrainProvider/types";
import { isUserBrainOwner } from "./isUserBrainOwner";
type GetBrainPermissionsProps = {
brainId?: UUID;
userAccessibleBrains: MinimalBrainForUser[];
};
export const getBrainPermissions = ({
brainId,
userAccessibleBrains,
}: GetBrainPermissionsProps): {
isPublicBrain: boolean;
hasEditRights: boolean;
isOwnedByCurrentUser: boolean;
} => {
const isOwnedByCurrentUser = isUserBrainOwner({
brainId,
userAccessibleBrains,
});
const isPublicBrain =
userAccessibleBrains.find((brain) => brain.id === brainId)?.status ===
"public";
const hasEditRights = !isPublicBrain || isOwnedByCurrentUser;
return { isPublicBrain, hasEditRights, isOwnedByCurrentUser };
};