@r3l/app
Version:
157 lines (130 loc) • 7.02 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.UserName = UserName;
exports.default = void 0;
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _reactRedux = require("react-redux");
var _styles = require("../../styles");
var _rStat = _interopRequireDefault(require("../stats/rStat.component"));
var _UAvatar = _interopRequireDefault(require("./UAvatar.component"));
var _numbers = require("../../utils/numbers");
var _styled = require("../styled");
var _navigation = require("../navigation/navigation.actions");
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; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
var _default = /*#__PURE__*/(0, _react.memo)(AvatarBox);
exports.default = _default;
AvatarBox.propTypes = {
noLink: _propTypes.default.bool,
avatarText: _propTypes.default.func,
twitter: _propTypes.default.bool,
type: _propTypes.default.string,
user: _propTypes.default.object,
size: _propTypes.default.number,
showRelevance: _propTypes.default.bool,
repost: _propTypes.default.bool,
postTime: _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.object]),
setSelected: _propTypes.default.func,
navigationCallback: _propTypes.default.func,
vertical: _propTypes.default.bool
};
function AvatarBox(props) {
var _user$relevance;
var user = props.user,
showRelevance = props.showRelevance,
type = props.type,
setSelected = props.setSelected,
size = props.size,
postTime = props.postTime,
repost = props.repost,
avatarText = props.avatarText,
noLink = props.noLink,
navigationCallback = props.navigationCallback,
vertical = props.vertical;
var dispatch = (0, _reactRedux.useDispatch)();
if (!user) return null;
var handle = user.handle;
if (type !== 'invite' && handle) handle = "@".concat(handle);
var timestamp;
if (postTime) {
timestamp = ' • ' + (0, _numbers.getTimestamp)(postTime);
}
var handleEl = handle && !vertical && /*#__PURE__*/_react.default.createElement(_styled.SecondaryText, null, handle, " ", timestamp);
var repostIcon = repost && /*#__PURE__*/_react.default.createElement(_styled.Image, {
resizeMode: 'contain',
source: require("../../../public/img/reposted.png"),
sx: {
width: 3,
height: 3,
mr: 0.2,
mb: 2
}
});
var showRel = showRelevance && !avatarText && (user === null || user === void 0 ? void 0 : (_user$relevance = user.relevance) === null || _user$relevance === void 0 ? void 0 : _user$relevance.reputation) > 0.01;
return /*#__PURE__*/_react.default.createElement(_styled.Box, null, /*#__PURE__*/_react.default.createElement(_styled.Pressable, {
disabled: noLink,
to: "/user/profile/".concat(user.handle),
nativeAction: function nativeAction() {
setSelected ? setSelected(user) : dispatch((0, _navigation.goToProfile)(user));
navigationCallback && navigationCallback();
},
webAction: function webAction() {
return navigationCallback && navigationCallback();
}
}, /*#__PURE__*/_react.default.createElement(_styled.View, {
sx: {
alignItems: 'center',
flexDirection: vertical ? 'column' : 'row'
}
}, /*#__PURE__*/_react.default.createElement(_UAvatar.default, {
size: size,
user: user,
noLink: true
}), repostIcon, /*#__PURE__*/_react.default.createElement(_styled.View, {
sx: {
ml: vertical ? 0 : avatarText ? 1.5001 * 8 : 1,
alignItems: vertical ? 'center' : 'flex-start'
}
}, /*#__PURE__*/_react.default.createElement(_styled.Text, null, /*#__PURE__*/_react.default.createElement(UserName, {
user: user,
showRel: showRel
}), avatarText ? /*#__PURE__*/_react.default.createElement(_styled.Text, null, " ", avatarText()) : null), handleEl))));
}
UserName.propTypes = {
user: _propTypes.default.object,
showRel: _propTypes.default.bool
};
function UserName(_ref) {
var user = _ref.user,
showRel = _ref.showRel;
var elipses = _styles.isNative ? {} : {
// overflowText: 'elipses',
// display: 'inline-block',
// verticalAlign: 'bottom',
maxWidth: 12 * 8,
whiteSpace: 'nowrap'
};
return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, /*#__PURE__*/_react.default.createElement(_styled.BodyText // numberOfLines={1}
, {
sx: _objectSpread({
overflow: 'hidden',
lineHeight: 18
}, elipses),
testID: "name"
}, user.name), showRel && /*#__PURE__*/_react.default.createElement(_styled.Text, null, ' ', /*#__PURE__*/_react.default.createElement(_rStat.default, {
noSpace: true,
inline: 1,
align: 'baseline',
size: 1,
user: user
})));
}
//# sourceMappingURL=avatarbox.component.js.map