UNPKG

@nutui/nutui-react

Version:

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

104 lines (103 loc) 4.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); Object.defineProperty(exports, "FixedNav", { enumerable: true, get: function() { return FixedNav; } }); var _interop_require_default = require("@swc/helpers/_/_interop_require_default"); var _object_spread = require("@swc/helpers/_/_object_spread"); var _object_spread_props = require("@swc/helpers/_/_object_spread_props"); var _object_without_properties = require("@swc/helpers/_/_object_without_properties"); var _react = /*#__PURE__*/ _interop_require_default._(require("react")); var _classnames = /*#__PURE__*/ _interop_require_default._(require("classnames")); var _iconsreact = require("@nutui/icons-react"); var _index = /*#__PURE__*/ _interop_require_default._(require("../overlay/index")); var _configprovider = require("../configprovider"); var _overlay = require("../overlay/overlay"); var _index1 = /*#__PURE__*/ _interop_require_default._(require("../badge/index")); var defaultProps = (0, _object_spread_props._)((0, _object_spread._)({}, _overlay.defaultOverlayProps), { activeText: '', inactiveText: '', type: 'right', list: [], overlay: true, position: { top: 'auto', bottom: 'auto' }, zIndex: 200, onChange: function onChange(value) {}, onSelect: function onSelect() {} }); var FixedNav = function FixedNav(props) { var locale = (0, _configprovider.useConfig)().locale; var _ref = (0, _object_spread._)({}, defaultProps, props), overlay = _ref.overlay, visible = _ref.visible, list = _ref.list, activeText = _ref.activeText, inactiveText = _ref.inactiveText, position = _ref.position, type = _ref.type, children = _ref.children, style = _ref.style, className = _ref.className, content = _ref.content, zIndex = _ref.zIndex, onChange = _ref.onChange, onSelect = _ref.onSelect, rest = (0, _object_without_properties._)(_ref, [ "overlay", "visible", "list", "activeText", "inactiveText", "position", "type", "children", "style", "className", "content", "zIndex", "onChange", "onSelect" ]); var classPrefix = 'nut-fixednav'; var classes = (0, _classnames.default)(classPrefix, { active: visible }, "".concat(classPrefix, "-").concat(type), className); var renderListItem = function renderListItem(item, index) { return /*#__PURE__*/ _react.default.createElement("div", { className: "".concat(classPrefix, "-list-item"), onClick: function onClick(event) { return onSelect(item, event); }, key: item.id || index }, /*#__PURE__*/ _react.default.isValidElement(item.icon) ? item.icon : /*#__PURE__*/ _react.default.createElement("img", { src: item.icon, alt: "", className: "".concat(classPrefix, "-list-image") }), /*#__PURE__*/ _react.default.createElement("div", { className: "".concat(classPrefix, "-list-text") }, item.text)); }; return /*#__PURE__*/ _react.default.createElement("div", (0, _object_spread._)({ className: classes, style: (0, _object_spread._)({}, position, style) }, rest), overlay && /*#__PURE__*/ _react.default.createElement(_index.default, { visible: visible, zIndex: zIndex, onClick: function onClick() { return onChange(false); } }), /*#__PURE__*/ _react.default.createElement("div", { className: "list" }, children || /*#__PURE__*/ _react.default.createElement("div", { className: "".concat(classPrefix, "-list") }, list.map(function(item, index) { return /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, item.num ? /*#__PURE__*/ _react.default.createElement(_index1.default, { value: item.num, top: 8, right: 6 }, renderListItem(item, index)) : /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, renderListItem(item, index))); }))), /*#__PURE__*/ _react.default.createElement("div", { className: "".concat(classPrefix, "-btn"), onClick: function onClick() { return onChange(!visible); } }, content || /*#__PURE__*/ _react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/ _react.default.createElement(_iconsreact.ArrowLeft, { color: "#fff" }), /*#__PURE__*/ _react.default.createElement("div", { className: "text" }, visible ? activeText || locale.fixednav.activeText : inactiveText || locale.fixednav.inactiveText)))); }; FixedNav.displayName = 'NutFixedNav';