UNPKG

cloudhubui

Version:

Various components to use in react projects

277 lines (233 loc) 10.6 kB
"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;