UNPKG

1.59 kBJavaScriptView Raw
1import { LeftOutline } from 'antd-mobile-icons';
2import classNames from 'classnames';
3import React from 'react';
4import { withNativeProps } from '../../utils/native-props';
5import { mergeProp, mergeProps } from '../../utils/with-default-props';
6import { useConfig } from '../config-provider';
7const classPrefix = `adm-nav-bar`;
8const defaultBackIcon = React.createElement(LeftOutline, null);
9export const NavBar = props => {
10 const {
11 navBar: componentConfig = {}
12 } = useConfig();
13 const mergedProps = mergeProps(componentConfig, props);
14 const {
15 back,
16 backIcon,
17 backArrow
18 } = mergedProps;
19 const mergedDefaultBackIcon = componentConfig.backIcon || defaultBackIcon;
20 const mergedBackIcon = mergeProp(defaultBackIcon, componentConfig.backIcon, backArrow === true ? mergedDefaultBackIcon : backArrow, backIcon === true ? mergedDefaultBackIcon : backIcon);
21 return withNativeProps(mergedProps, React.createElement("div", {
22 className: classNames(classPrefix)
23 }, React.createElement("div", {
24 className: `${classPrefix}-left`,
25 role: 'button'
26 }, back !== null && React.createElement("div", {
27 className: `${classPrefix}-back`,
28 onClick: mergedProps.onBack
29 }, mergedBackIcon && React.createElement("span", {
30 className: `${classPrefix}-back-arrow`
31 }, mergedBackIcon), React.createElement("span", {
32 "aria-hidden": 'true'
33 }, back)), mergedProps.left), React.createElement("div", {
34 className: `${classPrefix}-title`
35 }, mergedProps.children), React.createElement("div", {
36 className: `${classPrefix}-right`
37 }, mergedProps.right)));
38};
\No newline at end of file