UNPKG

linkmore-design

Version:

🌈 🚀lm组件库。🚀

54 lines (49 loc) 1.9 kB
"use strict"; var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default; Object.defineProperty(exports, "__esModule", { value: true }); exports.getBase64 = void 0; exports.getIsHas = getIsHas; exports.isClassComponent = isClassComponent; exports.isExoticComponent = isExoticComponent; exports.isReactComponent = isReactComponent; exports.render = void 0; var _react = _interopRequireDefault(require("react")); // 检查是否存在内容 function getIsHas(val) { // 检查是否数字类型, 是否布尔类型 let flag = !!val || typeof val === 'number' || typeof val === 'boolean'; // 检查空对象和空数组 if (!!val && typeof val === 'object') { flag = Array.isArray(val) ? !!val.length : !!Object.keys(val)?.length; } return flag; } // 检查是否类组件 function isClassComponent(component) { return typeof component === 'function' && (() => { const proto = Object.getPrototypeOf(component); return proto.prototype && proto.prototype.isReactComponent; })(); } // 检查是否自定义组件 function isExoticComponent(component) { return typeof component === 'object' && typeof component.$$typeof === 'symbol' && ['react.memo', 'react.forward_ref'].includes(component.$$typeof.description); } // 检查是否React组件 function isReactComponent(component) { return isClassComponent(component) || typeof component === 'function' || isExoticComponent(component); } const render = (Comp, props) => !Comp ? null : isReactComponent(Comp) ? /*#__PURE__*/_react.default.createElement(Comp, props) : Comp; /* * 将上传的图片转换为可展示的形式 * getBase64(file, (img) => {}) */ exports.render = render; const getBase64 = (img, callback) => { const reader = new FileReader(); reader.addEventListener('load', () => callback(reader.result)); reader.readAsDataURL(img); }; exports.getBase64 = getBase64;