UNPKG

gui-one-nutui-react-taro

Version:

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

92 lines (91 loc) 4.27 kB
import _defineProperty from "@babel/runtime/helpers/defineProperty"; import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties"; var _excluded = ["children", "cancelTxt", "optionTag", "optionSubTag", "chooseTagValue", "title", "color", "description", "menuItems", "onCancel", "onChoose", "visible", "className", "style"]; 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 { P as Popup } from './popup.taro-33d0bbc8.js'; import { c as cn } from './bem-893ad28d.js'; var defaultProps = { cancelTxt: '', optionTag: 'name', optionSubTag: 'subname', chooseTagValue: '', title: '', color: '#ee0a24', description: '', menuItems: [], onCancel: function onCancel() {}, onChoose: function onChoose() {}, visible: false, className: '', style: {} }; var ActionSheet = function ActionSheet(props) { var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), children = _defaultProps$props.children, cancelTxt = _defaultProps$props.cancelTxt, optionTag = _defaultProps$props.optionTag, optionSubTag = _defaultProps$props.optionSubTag, chooseTagValue = _defaultProps$props.chooseTagValue, title = _defaultProps$props.title, color = _defaultProps$props.color, description = _defaultProps$props.description, menuItems = _defaultProps$props.menuItems, onCancel = _defaultProps$props.onCancel, onChoose = _defaultProps$props.onChoose, visible = _defaultProps$props.visible, className = _defaultProps$props.className, style = _defaultProps$props.style, rest = _objectWithoutProperties(_defaultProps$props, _excluded); var b = cn('actionsheet'); var isHighlight = function isHighlight(item) { return props.chooseTagValue && props.chooseTagValue === item[props.optionTag || 'name'] ? props.color : '#1a1a1a'; }; var cancelActionSheet = function cancelActionSheet() { onCancel && onCancel(); }; var chooseItem = function chooseItem(item, index) { if (!item.disable) { onChoose && onChoose(item, index); } }; return React__default.createElement(Popup, { round: true, visible: visible, position: "bottom", onClose: function onClose() { onCancel && onCancel(); } }, React__default.createElement("div", _objectSpread({ className: "".concat(b(), " ").concat(className), style: style }, rest), title && React__default.createElement("div", { className: b('title') }, title), description && React__default.createElement("div", { className: "".concat(b('item'), " desc") }, description), menuItems.length ? React__default.createElement("div", { className: b('menu') }, menuItems.map(function (item, index) { return React__default.createElement("div", { className: "".concat(b('item'), " ").concat(item.disable ? b('item-disabled') : ''), style: { color: isHighlight(item) }, key: index, onClick: function onClick() { return chooseItem(item, index); } }, item[optionTag], React__default.createElement("div", { className: "subdesc" }, item[optionSubTag])); })) : children, cancelTxt && React__default.createElement("div", { className: b('cancel'), onClick: function onClick() { return cancelActionSheet(); } }, cancelTxt))); }; ActionSheet.defaultProps = defaultProps; ActionSheet.displayName = 'NutActionSheet'; export { ActionSheet as A };