UNPKG

@fruits-chain/react-native-xiaoshu

Version:
74 lines (72 loc) 2.3 kB
"use strict"; import { ArrowLeftOutline } from '@fruits-chain/icons-react-native'; import isNil from 'lodash/isNil'; import React, { memo } from 'react'; import { View, TouchableOpacity } from 'react-native'; import { varCreator as varCreatorButton } from "../button/style.js"; import Divider from "../divider/index.js"; import { getDefaultValue, renderTextLikeJSX } from "../helpers/index.js"; import Theme from "../theme/index.js"; import { varCreator, styleCreator } from "./style.js"; import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime"; const BACK_ARROW_HIT_SLOP = { left: 10, right: 10 // top: 0, // bottom: 0, }; /** * NavBar 导航栏 */ const NavBar = ({ testID, style, theme, leftStyle, rightStyle, titleTextStyle, title, leftExtra, rightExtra, showBackArrow = true, backArrowColor, backArrowSize, divider = true, onPressBackArrow }) => { const [CV, STYLES] = Theme.useStyle({ varCreator, styleCreator, theme }); const [CV_BUTTON] = Theme.useStyle({ varCreator: varCreatorButton }); backArrowColor = getDefaultValue(backArrowColor, CV.nav_bar_icon_color); backArrowSize = getDefaultValue(backArrowSize, CV.nav_bar_arrow_size); const titleJSX = renderTextLikeJSX(title, [STYLES.title_text, titleTextStyle]); return /*#__PURE__*/_jsxs(_Fragment, { children: [/*#__PURE__*/_jsxs(View, { style: [STYLES.bar, style], testID: testID, children: [showBackArrow || !isNil(leftExtra) ? /*#__PURE__*/_jsxs(View, { style: [STYLES.left, leftStyle], children: [showBackArrow ? /*#__PURE__*/_jsx(TouchableOpacity, { style: STYLES.back_arrow, onPress: onPressBackArrow, activeOpacity: CV_BUTTON.button_active_opacity, hitSlop: BACK_ARROW_HIT_SLOP, children: /*#__PURE__*/_jsx(ArrowLeftOutline, { size: backArrowSize, color: backArrowColor }) }) : null, leftExtra] }) : null, !isNil(rightExtra) ? /*#__PURE__*/_jsx(View, { style: [STYLES.right, rightStyle], children: rightExtra }) : null, titleJSX] }), divider ? /*#__PURE__*/_jsx(Divider, {}) : null] }); }; export default /*#__PURE__*/memo(NavBar); //# sourceMappingURL=nav-bar.js.map