UNPKG

@nutui/nutui-react

Version:

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

93 lines (92 loc) 3.95 kB
import { _ as _object_spread } from "@swc/helpers/_/_object_spread"; import { _ as _object_spread_props } from "@swc/helpers/_/_object_spread_props"; import { _ as _object_without_properties } from "@swc/helpers/_/_object_without_properties"; import React from "react"; import classNames from "classnames"; import { ArrowLeft } from "@nutui/icons-react"; import Overlay from "../overlay/index"; import { useConfig } from "../configprovider"; import { defaultOverlayProps } from "../overlay/overlay"; import Badge from "../badge/index"; var defaultProps = _object_spread_props(_object_spread({}, defaultOverlayProps), { activeText: '', inactiveText: '', type: 'right', list: [], overlay: true, position: { top: 'auto', bottom: 'auto' }, zIndex: 200, onChange: function(value) {}, onSelect: function() {} }); export var FixedNav = function(props) { var locale = useConfig().locale; var _ref = _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 = _object_without_properties(_ref, [ "overlay", "visible", "list", "activeText", "inactiveText", "position", "type", "children", "style", "className", "content", "zIndex", "onChange", "onSelect" ]); var classPrefix = 'nut-fixednav'; var classes = classNames(classPrefix, { active: visible }, "".concat(classPrefix, "-").concat(type), className); var renderListItem = function(item, index) { return /*#__PURE__*/ React.createElement("div", { className: "".concat(classPrefix, "-list-item"), onClick: function(event) { return onSelect(item, event); }, key: item.id || index }, /*#__PURE__*/ React.isValidElement(item.icon) ? item.icon : /*#__PURE__*/ React.createElement("img", { src: item.icon, alt: "", className: "".concat(classPrefix, "-list-image") }), /*#__PURE__*/ React.createElement("div", { className: "".concat(classPrefix, "-list-text") }, item.text)); }; return /*#__PURE__*/ React.createElement("div", _object_spread({ className: classes, style: _object_spread({}, position, style) }, rest), overlay && /*#__PURE__*/ React.createElement(Overlay, { visible: visible, zIndex: zIndex, onClick: function() { return onChange(false); } }), /*#__PURE__*/ React.createElement("div", { className: "list" }, children || /*#__PURE__*/ React.createElement("div", { className: "".concat(classPrefix, "-list") }, list.map(function(item, index) { return /*#__PURE__*/ React.createElement(React.Fragment, null, item.num ? /*#__PURE__*/ React.createElement(Badge, { value: item.num, top: 8, right: 6 }, renderListItem(item, index)) : /*#__PURE__*/ React.createElement(React.Fragment, null, renderListItem(item, index))); }))), /*#__PURE__*/ React.createElement("div", { className: "".concat(classPrefix, "-btn"), onClick: function() { return onChange(!visible); } }, content || /*#__PURE__*/ React.createElement(React.Fragment, null, /*#__PURE__*/ React.createElement(ArrowLeft, { color: "#fff" }), /*#__PURE__*/ React.createElement("div", { className: "text" }, visible ? activeText || locale.fixednav.activeText : inactiveText || locale.fixednav.inactiveText)))); }; FixedNav.displayName = 'NutFixedNav';