UNPKG

gui-one-nutui-react-taro

Version:

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

82 lines (80 loc) 3.72 kB
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 };