UNPKG

@r3l/app

Version:
77 lines (59 loc) 2.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useRequireRole = exports.useRole = exports.useMember = exports.useCommunity = exports.MemberRole = void 0; var _reactRedux = require("react-redux"); var MemberRole; exports.MemberRole = MemberRole; (function (MemberRole) { MemberRole[MemberRole["MASTER"] = 4] = "MASTER"; MemberRole[MemberRole["OWNER"] = 3] = "OWNER"; MemberRole[MemberRole["ADMIN"] = 2] = "ADMIN"; MemberRole[MemberRole["USER"] = 1] = "USER"; MemberRole[MemberRole["GUEST"] = 0] = "GUEST"; })(MemberRole || (exports.MemberRole = MemberRole = {})); var useCommunity = function useCommunity(slug) { return (0, _reactRedux.useSelector)(function (state) { return state.community.communities[slug || state.community.active]; }); }; exports.useCommunity = useCommunity; var useMember = function useMember() { var slug = (0, _reactRedux.useSelector)(function (state) { return state.community.active; }); var userMemberships = (0, _reactRedux.useSelector)(function (state) { return state.community.userMemberships; }); return userMemberships.find(function (m) { return m.community === slug; }); }; exports.useMember = useMember; var useRole = function useRole() { var isMaster = (0, _reactRedux.useSelector)(function (state) { var _state$auth, _state$auth$user; return ((_state$auth = state.auth) === null || _state$auth === void 0 ? void 0 : (_state$auth$user = _state$auth.user) === null || _state$auth$user === void 0 ? void 0 : _state$auth$user.role) === 'admin'; }); var member = useMember(); switch (true) { case isMaster: return MemberRole.MASTER; case !!(member !== null && member !== void 0 && member.superAdmin): return MemberRole.OWNER; case (member === null || member === void 0 ? void 0 : member.role) === 'admin': return MemberRole.ADMIN; case (member === null || member === void 0 ? void 0 : member.role) === 'user': return MemberRole.USER; default: return MemberRole.GUEST; } }; exports.useRole = useRole; var useRequireRole = function useRequireRole(requireRole) { var role = useRole(); return role >= requireRole; }; exports.useRequireRole = useRequireRole; //# sourceMappingURL=community.selectors.js.map