UNPKG

@replyke/core

Version:

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

34 lines 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const react_1 = require("react"); function useSpacePermissions({ memberPermissions, postingPermission, readingPermission = "anyone", }) { return (0, react_1.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]); } exports.default = useSpacePermissions; //# sourceMappingURL=useSpacePermissions.js.map