@r3l/app
Version:
214 lines (181 loc) • 7.21 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 _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _react = _interopRequireWildcard(require("react"));
var _propTypes = _interopRequireDefault(require("prop-types"));
var _gradient = _interopRequireDefault(require("./gradient.component"));
var _reactRedux = require("react-redux");
var _reactNativeWeb = require("react-native-web");
var _styled = require("../styled");
var _post = require("../../utils/post");
var _postinfoMobile = _interopRequireDefault(require("./postinfo.mobile.component"));
var _layout = require("../../styles/layout");
var _UAvatar = _interopRequireDefault(require("../user/UAvatar.component"));
var _commentBody = require("../comment/commentBody");
var _postTitle = _interopRequireDefault(require("./postTitle.component"));
var _img = require("../../utils/img");
var _ImagePost = require("./ImagePost");
var _hooks = require("./hooks");
var _history = _interopRequireDefault(require("../navigation/history"));
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; }
PostInfo.propTypes = {
noLink: _propTypes.default.bool,
link: _propTypes.default.object,
post: _propTypes.default.object,
singlePost: _propTypes.default.bool,
preview: _propTypes.default.bool
};
var _default = /*#__PURE__*/(0, _react.memo)(PostInfo);
exports.default = _default;
function PostInfo(_ref) {
var post = _ref.post,
link = _ref.link,
noLink = _ref.noLink,
singlePost = _ref.singlePost,
preview = _ref.preview;
var _useState = (0, _react.useState)(true),
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
showImage = _useState2[0],
setShowImage = _useState2[1];
var _useState3 = (0, _react.useState)(true),
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
showFavIcon = _useState4[0],
setShowFavIcon = _useState4[1];
var screenSize = (0, _reactRedux.useSelector)(function (state) {
return state.navigation.screenSize;
});
var postUrl = (0, _hooks.usePostUrl)(post);
if (post.loading) return /*#__PURE__*/_react.default.createElement(_reactNativeWeb.ActivityIndicator, null);
if (!post) return null;
var imageUrl = (0, _img.resizeImage)(link === null || link === void 0 ? void 0 : link.image, _layout.POST_IMAGE_W, _layout.POST_IMAGE_H);
var favIcon = (link === null || link === void 0 ? void 0 : link.domain) && (0, _post.getFavIcon)(link.domain);
var title = (0, _post.getTitle)({
post: post,
link: link
});
if (post.type == 'image' && link) {
return /*#__PURE__*/_react.default.createElement(_styled.View, {
sx: {
flex: 1,
flexDirection: singlePost ? 'column' : ['column', 'row']
}
}, /*#__PURE__*/_react.default.createElement(_ImagePost.ImagePost, {
singlePost: singlePost,
preview: preview,
url: post.url,
disabled: noLink,
postUrl: postUrl,
_id: post._id
}), !singlePost ? /*#__PURE__*/_react.default.createElement(_styled.View, {
sx: {
mr: 2
}
}) : null, !preview ? /*#__PURE__*/_react.default.createElement(_styled.View, {
webContainerSx: {
justifyContent: 'flex-end'
},
sx: {
px: [2, 0],
pt: 1,
justifyContent: 'flex-end'
}
}, /*#__PURE__*/_react.default.createElement(_postTitle.default, {
post: post,
link: link,
noLink: noLink,
singlePost: singlePost,
preview: preview
})) : null);
}
if (screenSize) return /*#__PURE__*/_react.default.createElement(_postinfoMobile.default, {
preview: preview,
post: post,
singlePost: singlePost,
noLink: noLink,
link: link
});
if (link) {
return /*#__PURE__*/_react.default.createElement(_styled.View, {
sx: {
flex: 1,
flexDirection: ['column', 'row']
}
}, /*#__PURE__*/_react.default.createElement(_styled.Pressable, {
webAction: function webAction() {
return _history.default.push(postUrl);
},
external: true,
to: post.url,
target: "_blank",
disabled: noLink
}, /*#__PURE__*/_react.default.createElement(_styled.View, {
sx: {
flex: 1,
width: _layout.POST_IMAGE_W * 8,
height: _layout.POST_IMAGE_H * 8,
mr: 2
}
}, showImage && imageUrl ? /*#__PURE__*/_react.default.createElement(_styled.Image, {
sx: {
flex: 1,
width: _layout.POST_IMAGE_W * 8,
height: _layout.POST_IMAGE_H * 8
},
source: {
uri: imageUrl
},
onError: function onError() {
return setShowImage(false);
}
}) : showFavIcon && favIcon ? /*#__PURE__*/_react.default.createElement(_styled.Image, {
resizeMode: "cover",
sx: {
flex: 1,
width: _layout.POST_IMAGE_W * 8,
height: _layout.POST_IMAGE_H * 8
},
source: {
uri: favIcon
},
onError: function onError() {
return setShowFavIcon(false);
}
}) : /*#__PURE__*/_react.default.createElement(_gradient.default, {
flex: 1,
title: title
}))), /*#__PURE__*/_react.default.createElement(_postTitle.default, {
post: post,
link: link,
noLink: noLink,
title: title,
singlePost: singlePost,
preview: preview
}));
}
return /*#__PURE__*/_react.default.createElement(_styled.Row, {
sx: {
flex: 1,
p: 2,
alignItems: 'center'
}
}, /*#__PURE__*/_react.default.createElement(_UAvatar.default, {
size: 6,
user: post.embeddedUser,
noLink: true
}), /*#__PURE__*/_react.default.createElement(_styled.View, {
sx: {
mr: 2
}
}), /*#__PURE__*/_react.default.createElement(_commentBody.CommentBody, {
noLink: true,
comment: post,
preview: true
}));
}
//# sourceMappingURL=postinfo.component.js.map