UNPKG

@nutui/nutui-react

Version:

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

50 lines (49 loc) 2.71 kB
import { _ as __rest } from "./tslib.es6.js"; import React__default from "react"; import classNames from "classnames"; import { ArrowLeft } from "@nutui/icons-react"; import Overlay__default from "./Overlay.js"; import { useConfig } from "./ConfigProvider.js"; import { C as ComponentDefaults } from "./typings.js"; const defaultProps = Object.assign(Object.assign({}, ComponentDefaults), { activeText: "", inactiveText: "", type: "right", position: { top: "auto", bottom: "auto" } }); const FixedNav = (props) => { const { locale } = useConfig(); const _a = Object.assign(Object.assign({}, defaultProps), props), { className, overlay, visible, list, activeText, inactiveText, position, onChange, onSelect, type, children, style, content } = _a, rest = __rest(_a, ["className", "overlay", "visible", "list", "activeText", "inactiveText", "position", "onChange", "onSelect", "type", "children", "style", "content"]); const classPrefix = "nut-fixednav"; const classes = classNames(classPrefix, { active: visible }, type, className); const handleClick = (item, event) => { onSelect(item, event); }; const onUpdateValue = (value = !visible) => { onChange(value); }; return React__default.createElement( "div", Object.assign({ className: classes, style: Object.assign(Object.assign({}, position), style) }, rest), overlay && React__default.createElement(Overlay__default, { visible, style: { "--nutui-overlay-zIndex": 200 }, onClick: () => onUpdateValue(false) }), React__default.createElement("div", { className: "list" }, children || React__default.createElement("div", { className: `${classPrefix}-list` }, list.map((item, index) => { return React__default.createElement( "div", { className: `${classPrefix}-list-item`, onClick: (event) => handleClick(item, event), key: item.id || index }, React__default.isValidElement(item.icon) ? item.icon : React__default.createElement("img", { src: item.icon, alt: "" }), React__default.createElement("div", { className: `${classPrefix}-list-text` }, item.text), item.num && React__default.createElement("div", { className: "b" }, item.num) ); }))), React__default.createElement("div", { className: `${classPrefix}-btn`, onClick: () => onUpdateValue() }, content || React__default.createElement( React__default.Fragment, null, React__default.createElement(ArrowLeft, { color: "#fff" }), React__default.createElement("div", { className: "text" }, visible ? activeText || locale.fixednav.activeText : inactiveText || locale.fixednav.inactiveText) )) ); }; FixedNav.displayName = "NutFixedNav"; export { FixedNav as default };