cloudhubui
Version:
Various components to use in react projects
277 lines (233 loc) • 10.6 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = _interopRequireDefault(require("react"));
var _ListItem = _interopRequireDefault(require("@material-ui/core/ListItem"));
var _ListItemText = _interopRequireDefault(require("@material-ui/core/ListItemText"));
var _ListItemAvatar = _interopRequireDefault(require("@material-ui/core/ListItemAvatar"));
var _PlayArrow = _interopRequireDefault(require("@material-ui/icons/PlayArrow"));
var _PlayCircleOutline = _interopRequireDefault(require("@material-ui/icons/PlayCircleOutline"));
var _moment = _interopRequireDefault(require("moment"));
var _Block = _interopRequireDefault(require("./Block"));
var _Text = _interopRequireDefault(require("./Text"));
var _Avatar = _interopRequireDefault(require("./Avatar"));
var _ThemeContext = _interopRequireDefault(require("./theme/ThemeContext"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
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) { _defineProperty(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; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
var VideoThumbnail = function VideoThumbnail(_ref) {
var thumbnail = _ref.thumbnail,
small = _ref.small,
medium = _ref.medium,
large = _ref.large,
list = _ref.list,
card = _ref.card,
width = _ref.width,
height = _ref.height,
length = _ref.length,
borderWidth = _ref.borderWidth,
borderColor = _ref.borderColor,
color = _ref.color,
margin = _ref.margin,
padding = _ref.padding,
flex = _ref.flex,
showplayicon = _ref.showplayicon,
playicon = _ref.playicon,
title = _ref.title,
subTitle = _ref.subTitle,
author = _ref.author,
avatar = _ref.avatar,
posted = _ref.posted,
views = _ref.views,
outlineicon = _ref.outlineicon,
style = _ref.style,
props = _objectWithoutProperties(_ref, ["thumbnail", "small", "medium", "large", "list", "card", "width", "height", "length", "borderWidth", "borderColor", "color", "margin", "padding", "flex", "showplayicon", "playicon", "title", "subTitle", "author", "avatar", "posted", "views", "outlineicon", "style"]);
var _React$useContext = _react.default.useContext(_ThemeContext.default),
sizes = _React$useContext.sizes,
colors = _React$useContext.colors;
var thumbWidth = function thumbWidth() {
if (width) return width;
if (height && !width) return Math.round(height * 16 / 9);
if (small) return 128;
if (medium) return 192;
if (large) return 256;
return 192;
};
var thumbHeight = function thumbHeight() {
if (height) return height;
if (width && !height) return Math.round(width * 9 / 16);
if (small) return 72;
if (medium) return 108;
if (large) return 144;
return 108;
};
var divHeight = function divHeight() {
var baseHeight = thumbHeight();
if (card) return 'auto';
if (padding) {
if (Array.isArray(padding)) {
switch (padding.length) {
case 1:
{
return baseHeight + padding[0] * 2 + 2 * (borderWidth || 1);
}
case 2:
{
return baseHeight + padding[0] * 2 + 2 * (borderWidth || 1);
}
case 4:
{
return baseHeight + padding[0] + padding[2] + 2 * (borderWidth || 1);
}
default:
return thumbHeight();
}
}
}
};
var divWidth = function divWidth() {
var baseWidth = thumbWidth();
if (list) return 'auto';
if (padding) {
if (Array.isArray(padding)) {
switch (padding.length) {
case 1:
{
return baseWidth + padding[0] * 2 + 2 * (borderWidth || 1);
}
case 2:
{
return baseWidth + padding[1] * 2 + 2 * (borderWidth || 1);
}
case 4:
{
return baseWidth + padding[1] + padding[3] + 2 * (borderWidth || 1);
}
default:
return thumbWidth();
}
}
}
return thumbWidth();
};
var showViews = function showViews() {
if (typeof views === 'number') {
if (views < 1000) return "".concat(views, " Views");
if (views > 1000 && views < 10000) {
return "".concat((views / 1000).toFixed(1), "K Views");
}
if (views > 10000 && views < 1000000) {
return "".concat((views / 1000).toFixed(0), "K Views");
}
if (views > 1000000 && views < 10000000) {
return "".concat((views / 1000000).toFixed(1), "M Views");
}
if (views > 10000000 && views < 1000000000) {
return "".concat((views / 1000000).toFixed(0), "M Views");
}
}
return '';
};
var duration = function duration() {
if (length) {
if (typeof length === 'number') {
return "".concat(length > 3599 ? "".concat((length / 3600).toFixed(0), ":") : '').concat((length % 3600 / 60).toFixed(0), ":").concat((length % 60).toFixed(0));
}
}
return '';
};
return /*#__PURE__*/_react.default.createElement(_Block.default, _extends({
margin: margin || 0,
padding: padding || 0,
paper: true,
row: list,
style: _objectSpread({
height: divHeight(),
width: divWidth(),
cursor: 'pointer'
}, style || {}),
flex: list ? flex : false
}, props), /*#__PURE__*/_react.default.createElement(_Block.default, {
flex: false,
middle: true,
center: true,
style: {
width: thumbWidth(),
height: thumbHeight(),
backgroundImage: "url(".concat(thumbnail, ")"),
backgroundSize: 'cover',
border: "".concat(borderWidth || 1, "px solid ").concat(borderColor || colors.milkyWhite)
}
}, showplayicon && (playicon || (outlineicon ? /*#__PURE__*/_react.default.createElement(_PlayCircleOutline.default, {
style: {
color: colors.milkyWhite
}
}) : /*#__PURE__*/_react.default.createElement(_PlayArrow.default, {
style: {
color: colors.milkyWhite
}
}))), !list && !card && /*#__PURE__*/_react.default.createElement(_Text.default, {
body: true,
bold: true,
milkyWhite: true
}, title), !list && length && /*#__PURE__*/_react.default.createElement(_Block.default, {
flex: false,
style: {
position: 'absolute',
right: 0,
bottom: 0
},
color: colors.dark
}, /*#__PURE__*/_react.default.createElement(_Text.default, {
body: true,
milkyWhite: true
}, duration()))), list && /*#__PURE__*/_react.default.createElement(_Block.default, {
middle: true,
padding: [sizes.padding / 2, sizes.padding * 2],
color: color || colors.milkyWhite
}, length && /*#__PURE__*/_react.default.createElement(_Block.default, {
flex: false,
style: {
position: 'absolute',
right: 0,
top: 0
},
color: colors.dark
}, /*#__PURE__*/_react.default.createElement(_Text.default, {
body: true,
milkyWhite: true
}, duration())), title && /*#__PURE__*/_react.default.createElement(_Text.default, {
bold: true
}, title), subTitle && /*#__PURE__*/_react.default.createElement(_Text.default, {
body: true,
semibold: true
}, subTitle)), card && /*#__PURE__*/_react.default.createElement(_ListItem.default, {
dense: true
}, /*#__PURE__*/_react.default.createElement(_ListItemAvatar.default, null, /*#__PURE__*/_react.default.createElement(_Avatar.default, {
alt: "Author",
src: avatar || ''
})), /*#__PURE__*/_react.default.createElement(_ListItemText.default, {
primary: /*#__PURE__*/_react.default.createElement(_Text.default, {
h6: true,
bold: true
}, title),
secondary: /*#__PURE__*/_react.default.createElement(_Block.default, null, author && /*#__PURE__*/_react.default.createElement(_Text.default, null, author), (views || posted) && /*#__PURE__*/_react.default.createElement(_Block.default, {
row: true,
style: {
matrginLeft: 'auto'
}
}, views && /*#__PURE__*/_react.default.createElement(_Text.default, {
body: true
}, showViews()), views && posted && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, " \u2022 "), posted && /*#__PURE__*/_react.default.createElement(_Text.default, {
body: true
}, (0, _moment.default)(posted).fromNow(true))))
})));
};
var _default = VideoThumbnail;
exports.default = _default;