UNPKG

gui-one-nutui-react-taro

Version:

京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序

100 lines (99 loc) 4.09 kB
import _defineProperty from "@babel/runtime/helpers/defineProperty"; import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties"; var _excluded = ["className", "width", "height", "animated", "row", "title", "avatar", "avatarSize", "round", "loading", "children", "avatarShape"]; function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); 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 = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; } import React__default from 'react'; import classNames from 'classnames'; import { A as Avatar } from './avatar.taro-85ced995.js'; import { c as cn } from './bem-893ad28d.js'; var defaultProps = { width: '100px', height: '100px', row: 1, animated: false, title: false, avatar: false, round: false, avatarSize: '50px', loading: false, avatarShape: 'round' }; var Skeleton = function Skeleton(props) { var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), className = _defaultProps$props.className, width = _defaultProps$props.width, height = _defaultProps$props.height, animated = _defaultProps$props.animated, row = _defaultProps$props.row, title = _defaultProps$props.title, avatar = _defaultProps$props.avatar, avatarSize = _defaultProps$props.avatarSize, round = _defaultProps$props.round, loading = _defaultProps$props.loading, children = _defaultProps$props.children, avatarShape = _defaultProps$props.avatarShape, restProps = _objectWithoutProperties(_defaultProps$props, _excluded); var b = cn('skeleton'); var classes = classNames(className, b()); var blockClass = classNames({ blockClass: true, 'blockClass--round': round }); var avatarClass = classNames(_defineProperty({ avatarClass: true }, "avatarClass--".concat(avatarShape), avatarShape)); var repeatLines = function repeatLines(num) { return Array.from({ length: num }, function (v, i) { return i; }); }; var getStyle = function getStyle() { if (avatarSize) { return { width: avatarSize, height: avatarSize }; } return { width: '50px', height: '50px' }; }; return React__default.createElement(React__default.Fragment, null, loading ? React__default.createElement("div", null, children) : React__default.createElement("div", _objectSpread({ className: classes }, restProps), animated && React__default.createElement("div", { className: "skeleton-animation" }), React__default.createElement("div", { className: "nut-skeleton-content" }, avatar && React__default.createElement(Avatar, { className: avatarClass, bgColor: "rgb(239, 239, 239)", shape: avatarShape, style: getStyle() }), row === 1 && React__default.createElement("div", { className: blockClass, style: { width: width, height: height } }), React__default.createElement("div", { className: "skeleton-content-line" }, title && React__default.createElement("div", { className: "skeleton-title" }), repeatLines(row).map(function (item, index) { return React__default.createElement("div", { className: blockClass, key: index, style: { width: width, height: height } }); }))))); }; Skeleton.defaultProps = defaultProps; Skeleton.displayName = 'NutSkeleton'; export { Skeleton as S };