gui-one-nutui-react-taro
Version:
京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序
82 lines (80 loc) • 3.72 kB
JavaScript
import _slicedToArray from "@babel/runtime/helpers/slicedToArray";
import _defineProperty from "@babel/runtime/helpers/defineProperty";
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
var _excluded = ["image", "imageSize", "description", "children", "className"];
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, { useState, useEffect } from 'react';
import { c as cn } from './bem-893ad28d.js';
import { u as useConfig } from './configprovider.taro-6c7b3056.js';
/**
* 内置图片地址
*/
var defaultStatus = {
empty: 'https://static-ftcms.jd.com/p/files/61a9e3183985005b3958672b.png',
error: 'https://ftcms.jd.com/p/files/61a9e33ee7dcdbcc0ce62736.png',
network: 'https://static-ftcms.jd.com/p/files/61a9e31de7dcdbcc0ce62734.png'
};
var defaultProps = {
description: '无内容',
image: 'empty',
imageSize: '',
className: ''
};
var Empty = function Empty(props) {
var _useConfig = useConfig(),
locale = _useConfig.locale;
defaultProps.description = locale.noData || defaultProps.description;
var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),
image = _defaultProps$props.image,
imageSize = _defaultProps$props.imageSize,
description = _defaultProps$props.description,
children = _defaultProps$props.children,
className = _defaultProps$props.className,
rest = _objectWithoutProperties(_defaultProps$props, _excluded);
var _useState = useState({}),
_useState2 = _slicedToArray(_useState, 2),
imgStyle = _useState2[0],
setImgStyle = _useState2[1];
var b = cn('empty');
var imageNode = image;
if (typeof image === 'string') {
var isHttpUrl = image.startsWith('https://') || image.startsWith('http://') || image.startsWith('//');
var imageUrl = isHttpUrl ? image : defaultStatus[image];
imageNode = React__default.createElement("img", {
className: "img",
src: imageUrl,
alt: "empty"
});
}
useEffect(function () {
setImgStyle(function () {
if (!imageSize) {
return {};
}
if (typeof imageSize === 'number') {
return {
width: "".concat(imageSize, "px"),
height: "".concat(imageSize, "px")
};
}
return {
width: imageSize,
height: imageSize
};
});
}, [imageSize]);
return React__default.createElement("div", _objectSpread({
className: "".concat(b(), " ").concat(className)
}, rest), React__default.createElement(React__default.Fragment, null, React__default.createElement("div", {
className: b('image'),
style: imgStyle
}, imageNode), typeof description === 'string' ? React__default.createElement("div", {
className: b('description')
}, description) : {
description: description
}, children));
};
Empty.defaultProps = defaultProps;
Empty.displayName = 'NutEmpty';
export { Empty as E };