@r3l/app
Version:
77 lines (59 loc) • 2.3 kB
JavaScript
;
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