UNPKG

@replyke/core

Version:

Replyke: Build interactive apps with social features like comments, votes, feeds, user lists, notifications, and more.

32 lines 1.36 kB
import { useMemo } from "react"; function useSpacePermissions({ memberPermissions, postingPermission, readingPermission = "anyone", }) { return useMemo(() => { if (!memberPermissions) { // User is not a member return { isMember: false, isAdmin: false, isModerator: false, canPost: postingPermission === "anyone", canModerate: false, canRead: readingPermission === "anyone", isPending: false, isBanned: false, }; } // Use server-computed permission booleans directly so the server stays the // single source of truth and client/server logic can't drift. return { isMember: memberPermissions.isMember, isAdmin: memberPermissions.isAdmin, isModerator: memberPermissions.isModerator, canPost: memberPermissions.canPost, canModerate: memberPermissions.canModerate, canRead: memberPermissions.canRead, isPending: memberPermissions.status === "pending", isBanned: memberPermissions.status === "banned", }; }, [memberPermissions, postingPermission, readingPermission]); } export default useSpacePermissions; //# sourceMappingURL=useSpacePermissions.js.map