UNPKG

@r3l/app

Version:
197 lines (172 loc) 7.28 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); var _typeof = require("@babel/runtime/helpers/typeof"); Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var _react = _interopRequireWildcard(require("react")); var _propTypes = _interopRequireDefault(require("prop-types")); var _reactRedux = require("react-redux"); var _UAvatar = _interopRequireDefault(require("../user/UAvatar.component")); var _styled = require("../styled"); var _layout = require("../../styles/layout"); var _navigation = require("../navigation/navigation.actions"); var _community = require("./community.actions"); var _comment = require("../comment"); var _fonts = require("../../styles/fonts"); function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); } function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; } CommunityActive.propTypes = { community: _propTypes.default.object, children: _propTypes.default.node, members: _propTypes.default.array, view: _propTypes.default.object, auth: _propTypes.default.object, screenSize: _propTypes.default.number, viewCommunityMembers: _propTypes.default.func, showSettings: _propTypes.default.func, userCommunities: _propTypes.default.array, userMemberships: _propTypes.default.array }; var _default = /*#__PURE__*/(0, _react.memo)(CommunityActive); exports.default = _default; function CommunityActive(_ref) { var _auth$user, _auth$user2; var community = _ref.community, children = _ref.children, members = _ref.members, view = _ref.view, screenSize = _ref.screenSize, auth = _ref.auth, viewCommunityMembers = _ref.viewCommunityMembers, userCommunities = _ref.userCommunities, showSettings = _ref.showSettings, userMemberships = _ref.userMemberships; var dispatch = (0, _reactRedux.useDispatch)(); var discoverTopic = (0, _reactRedux.useSelector)(function (state) { var _state$navigation, _state$navigation$dis; return state === null || state === void 0 ? void 0 : (_state$navigation = state.navigation) === null || _state$navigation === void 0 ? void 0 : (_state$navigation$dis = _state$navigation.discover) === null || _state$navigation$dis === void 0 ? void 0 : _state$navigation$dis.tag; }); (0, _react.useEffect)(function () { if (!members.length) dispatch((0, _community.getCommunityMembers)({ slug: community.slug })); }, []); // eslint-disable-line var topics = (community === null || community === void 0 ? void 0 : community.topics) || []; var totalMembers = community.memberCount || 0; var userId = (_auth$user = auth.user) === null || _auth$user === void 0 ? void 0 : _auth$user._id; var allMembers = members.filter(function (member) { return member.embeddedUser._id !== userId; }); var isMember; if (auth.user) { isMember = userCommunities.find(function (_id) { return _id === community._id; }); if (isMember) { allMembers.unshift({ _id: userId, embeddedUser: auth.user }); } } var memberShip = userMemberships.find(function (m) { return m.communityId === community._id; }); var isSuperAdmin = memberShip && memberShip.superAdmin || (auth === null || auth === void 0 ? void 0 : (_auth$user2 = auth.user) === null || _auth$user2 === void 0 ? void 0 : _auth$user2.role) === 'admin'; var limitedMembers = allMembers.slice(0, screenSize ? 14 : 12); var sort = (view === null || view === void 0 ? void 0 : view.sort) || 'new'; return /*#__PURE__*/_react.default.createElement(_styled.View, { sx: { bg: 'white' } }, /*#__PURE__*/_react.default.createElement(_styled.View, { sx: { mt: [2, _layout.SIDE_NAV_PADDING] } }), children, /*#__PURE__*/_react.default.createElement(_styled.View, { sx: { px: [2, _layout.SIDE_NAV_PADDING], pb: [2, 4], variant: 'borders.navBorder', borderBottomWidth: 1 } }, /*#__PURE__*/_react.default.createElement(_styled.View, { sx: { mt: 4.001, ml: 5.5001 * 8 } }, topics.map(function (topic) { var active = topic === discoverTopic; return /*#__PURE__*/_react.default.createElement(_styled.View, { key: topic, sx: { mt: 1 } }, /*#__PURE__*/_react.default.createElement(_styled.InlineLink, { c: active ? 'black' : 'grey', hc: 'black', ac: 'black', variant: "text.communityLink", nativeAction: function nativeAction() { return dispatch((0, _navigation.goToTopic)(topic)); }, to: "/".concat(community.slug, "/").concat(sort, "/").concat(topic) }, "#", topic)); })), /*#__PURE__*/_react.default.createElement(_styled.View, { sx: { mt: [2, _layout.SIDE_NAV_PADDING] } }), /*#__PURE__*/_react.default.createElement(_comment.Markdown, { style: { pMargin: 8, body: { fontSize: 14, lineHeight: 18, fontFamily: _fonts.HELVETICA_REGULAR } }, markdown: community.description }), /*#__PURE__*/_react.default.createElement(_styled.Row, { sx: { mt: _layout.SIDE_NAV_PADDING, mb: 2, justifyContent: 'space-between' } }, /*#__PURE__*/_react.default.createElement(_styled.CommunityLink, { sx: { color: 'black' } }, "".concat(totalMembers, " Members")), /*#__PURE__*/_react.default.createElement(_styled.InlineLink, { inline: 1, to: "#", onClick: viewCommunityMembers }, /*#__PURE__*/_react.default.createElement(_styled.CommunityLink, { sx: { color: 'blue' } }, "See All"))), /*#__PURE__*/_react.default.createElement(_styled.Row, { sx: { flexWrap: 'wrap' } }, limitedMembers.map(function (member) { return /*#__PURE__*/_react.default.createElement(_UAvatar.default, { key: member._id, user: member.embeddedUser, sx: { mr: 1, mb: 1 } }); })), isSuperAdmin && /*#__PURE__*/_react.default.createElement(_styled.SecondaryText, { sx: { mt: 2, color: 'blue', py: 0.5 }, onPress: showSettings, key: 'settings_' }, "Settings"))); } //# sourceMappingURL=communityActive.component.js.map