@r3l/app
Version:
197 lines (172 loc) • 7.28 kB
JavaScript
"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