UNPKG

test-nut-ui

Version:

<p align="center"> <img alt="logo" src="https://img11.360buyimg.com/imagetools/jfs/t1/211965/25/7152/22022/61b16785E433119bb/aa41d7a9f7e823f3.png" width="150" style="margin-bottom: 10px;"> </p>

220 lines (219 loc) 10.6 kB
import _slicedToArray from "@babel/runtime/helpers/slicedToArray"; import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties"; import _defineProperty from "@babel/runtime/helpers/defineProperty"; var _excluded = ["children", "visible", "type", "height", "options", "title", "left", "value", "defaultValue", "optionKey", "format", "onClose", "onChange", "onPathChange"], _excluded2 = ["children", "type", "existList", "selectIcon", "defaultIcon", "custom", "onSelect", "onSwitch"], _excluded3 = ["visible", "defaultValue", "children", "type", "options", "optionKey", "format", "height", "title", "existList", "custom", "selectIcon", "defaultIcon", "closeIcon", "backIcon", "onChange", "onExistSelect", "onClose", "onSwitch", "style", "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), true).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 { Check, Location2, Left } from "@nutui/icons-react"; import Popup from "./Popup.js"; import { C as Cascader } from "./cascader2.js"; import { C as ComponentDefaults } from "./typings.js"; import { useConfig } from "./ConfigProvider.js"; import "classnames"; import "./popup2.js"; import "react-dom"; import "react-transition-group"; import "./index.js"; import "./overlay2.js"; import "./Overlay.js"; import "./tabs2.js"; import "./TabPane.js"; import "./raf.js"; import "./use-props-value.js"; import "./Sticky.js"; import "./Divider.js"; import "./Radio.js"; var defaultProps$2 = _objectSpread(_objectSpread({}, ComponentDefaults), {}, { visible: false, type: "custom", options: [], optionKey: { textKey: "text", valueKey: "value", childrenKey: "children" }, format: {}, height: "200px" }); var CustomRender = function CustomRender2(props) { var _defaultProps$2$props = _objectSpread(_objectSpread({}, defaultProps$2), props), children = _defaultProps$2$props.children, visible = _defaultProps$2$props.visible, type = _defaultProps$2$props.type, height = _defaultProps$2$props.height, options = _defaultProps$2$props.options, title = _defaultProps$2$props.title, left = _defaultProps$2$props.left, value = _defaultProps$2$props.value, defaultValue = _defaultProps$2$props.defaultValue, optionKey = _defaultProps$2$props.optionKey, format = _defaultProps$2$props.format, _onClose = _defaultProps$2$props.onClose, _onChange = _defaultProps$2$props.onChange, onPathChange = _defaultProps$2$props.onPathChange, rest = _objectWithoutProperties(_defaultProps$2$props, _excluded); return React__default.createElement(React__default.Fragment, null, type === "custom" && React__default.createElement(Cascader, _objectSpread({ visible, value, defaultValue, title, left, options, format, optionKey, onClose: function onClose() { _onClose === null || _onClose === void 0 ? void 0 : _onClose(); }, onChange: function onChange(val) { _onChange === null || _onChange === void 0 ? void 0 : _onChange(val); }, onPathChange }, rest))); }; var defaultProps$1 = { type: "custom", existList: [], defaultIcon: null, selectIcon: null, custom: false }; var ExistRender = function ExistRender2(props) { var _useConfig = useConfig(), locale = _useConfig.locale; var _defaultProps$1$props = _objectSpread(_objectSpread({}, defaultProps$1), props), children = _defaultProps$1$props.children, type = _defaultProps$1$props.type, existList = _defaultProps$1$props.existList, selectIcon = _defaultProps$1$props.selectIcon, defaultIcon = _defaultProps$1$props.defaultIcon, custom = _defaultProps$1$props.custom, onSelect = _defaultProps$1$props.onSelect, onSwitch = _defaultProps$1$props.onSwitch, rest = _objectWithoutProperties(_defaultProps$1$props, _excluded2); var classPrefix = "nut-address"; var selectedExist = function selectedExist2(item) { existList.forEach(function(list, index) { list.selectedAddress = false; }); item.selectedAddress = true; onSelect && onSelect(item); }; var onClick = function onClick2() { onSwitch && onSwitch({ type: type === "exist" ? "custom" : "exist" }); }; return React__default.createElement(React__default.Fragment, null, React__default.createElement("ul", { className: "".concat(classPrefix, "-exist") }, existList.map(function(item, index) { return React__default.createElement("li", { className: "".concat(classPrefix, "-exist-item ").concat(item.selectedAddress ? "active" : ""), key: index, onClick: function onClick2() { return selectedExist(item); } }, item.selectedAddress ? React__default.createElement(React__default.Fragment, null, React__default.isValidElement(selectIcon) ? selectIcon : React__default.createElement(Check, { color: "#FA2C19" })) : React__default.createElement(React__default.Fragment, null, React__default.isValidElement(defaultIcon) ? defaultIcon : React__default.createElement(Location2, null)), React__default.createElement("div", { className: "".concat(classPrefix, "-exist-item-info") }, item.name && item.phone && React__default.createElement(React__default.Fragment, null, React__default.createElement("div", null, item.name), React__default.createElement("div", null, item.phone)), React__default.createElement("div", null, item.provinceName + item.cityName + item.countyName + item.townName + item.addressDetail))); })), (custom || custom && locale.address.chooseAnotherAddress) && React__default.createElement("div", { className: "".concat(classPrefix, "-footer"), onClick }, React__default.createElement("div", { className: "".concat(classPrefix, "-footer-btn") }, custom))); }; var defaultProps = _objectSpread(_objectSpread({}, ComponentDefaults), {}, { visible: false, defaultValue: [], type: "custom", options: [], optionKey: { textKey: "text", valueKey: "value", childrenKey: "children" }, format: {}, custom: false, existList: [], height: "200px", defaultIcon: null, selectIcon: null, closeIcon: null, backIcon: null }); var Address = function Address2(props) { var _useConfig2 = useConfig(), locale = _useConfig2.locale; var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props), visible = _defaultProps$props.visible, defaultValue = _defaultProps$props.defaultValue, children = _defaultProps$props.children, type = _defaultProps$props.type, options = _defaultProps$props.options, optionKey = _defaultProps$props.optionKey, format = _defaultProps$props.format, height = _defaultProps$props.height, title = _defaultProps$props.title, existList = _defaultProps$props.existList, custom = _defaultProps$props.custom, selectIcon = _defaultProps$props.selectIcon, defaultIcon = _defaultProps$props.defaultIcon, closeIcon = _defaultProps$props.closeIcon, backIcon = _defaultProps$props.backIcon, _onChange2 = _defaultProps$props.onChange, onExistSelect = _defaultProps$props.onExistSelect, onClose = _defaultProps$props.onClose, onSwitch = _defaultProps$props.onSwitch, style = _defaultProps$props.style, className = _defaultProps$props.className, rest = _objectWithoutProperties(_defaultProps$props, _excluded3); var classPrefix = "nut-address"; var _useState = useState(type), _useState2 = _slicedToArray(_useState, 2), currentType = _useState2[0], setCurrentType = _useState2[1]; var _useState3 = useState(visible), _useState4 = _slicedToArray(_useState3, 2), showPopup = _useState4[0], setShowPopup = _useState4[1]; var handClose = function handClose2() { setShowPopup(false); }; useEffect(function() { setShowPopup(visible); }, [visible]); var renderLeftOnCustomSwitch = function renderLeftOnCustomSwitch2() { return React__default.createElement(React__default.Fragment, null, custom && React__default.createElement("div", { className: "".concat(classPrefix, "-left-icon"), onClick: onSwitchModule }, React__default.isValidElement(backIcon) ? backIcon : React__default.createElement(Left, { color: "#cccccc" }))); }; var selectedExistItem = function selectedExistItem2(data) { onExistSelect && onExistSelect(data); handClose(); }; var onSwitchModule = function onSwitchModule2() { if (currentType === "exist") { setCurrentType("custom"); } else { setCurrentType("exist"); } onSwitch && onSwitch({ type: currentType }); }; return React__default.createElement(React__default.Fragment, null, currentType === "custom" || currentType === "custom2" ? React__default.createElement(CustomRender, { visible: showPopup, closeable: true, title: title || locale.address.selectRegion, left: renderLeftOnCustomSwitch(), defaultValue, options, format, optionKey, type: currentType, height, onClose: handClose, onChange: function onChange(val, params) { _onChange2 === null || _onChange2 === void 0 ? void 0 : _onChange2(val, params); } }) : React__default.createElement(Popup, { visible: showPopup, position: "bottom", round: true, closeable: true, closeIcon, title: title || locale.address.selectRegion }, React__default.createElement( "div", { className: "".concat(classPrefix, " ").concat(className || ""), style: _objectSpread({}, style) }, // 不需要 close,选中切换即关闭弹框。可手动关闭弹框,只关闭弹框不处理逻辑。 React__default.createElement(ExistRender, { type: currentType, existList, selectIcon, defaultIcon, custom, onSelect: selectedExistItem, onSwitch: onSwitchModule }) ))); }; Address.defaultProps = defaultProps; Address.displayName = "NutAddress"; export { Address as default };