UNPKG

@fruits-chain/react-native-xiaoshu

Version:
60 lines (57 loc) 2.13 kB
import isNil from 'lodash/isNil'; import React, { memo } from 'react'; import { View, TouchableOpacity } from 'react-native'; import { varCreator as varCreatorButton } from '../button/style'; import Divider from '../divider'; import { getDefaultValue, renderTextLikeJSX } from '../helpers'; import ArrowLeftOutline from '../icon/arrow-left'; import Theme from '../theme'; import { varCreator, styleCreator } from './style'; const BACK_ARROW_HIT_SLOP = { left: 10, right: 10 // top: 0, // bottom: 0, }; /** * NavBar 导航栏 */ const NavBar = _ref => { let { style, leftStyle, rightStyle, titleTextStyle, title, leftExtra, rightExtra, showBackArrow = true, backArrowColor, backArrowSize, divider = true, onPressBackArrow } = _ref; const TOKENS = Theme.useThemeTokens(); const CV = Theme.createVar(TOKENS, varCreator); const CV_BUTTON = Theme.createVar(TOKENS, varCreatorButton); const STYLES = Theme.createStyle(CV, styleCreator); 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__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(View, { style: [STYLES.bar, style] }, showBackArrow || !isNil(leftExtra) ? /*#__PURE__*/React.createElement(View, { style: [STYLES.left, leftStyle] }, showBackArrow ? /*#__PURE__*/React.createElement(TouchableOpacity, { style: STYLES.back_arrow, onPress: onPressBackArrow, activeOpacity: CV_BUTTON.button_active_opacity, hitSlop: BACK_ARROW_HIT_SLOP }, /*#__PURE__*/React.createElement(ArrowLeftOutline, { size: backArrowSize, color: backArrowColor })) : null, leftExtra) : null, !isNil(rightExtra) ? /*#__PURE__*/React.createElement(View, { style: [STYLES.right, rightStyle] }, rightExtra) : null, titleJSX), divider ? /*#__PURE__*/React.createElement(Divider, null) : null); }; export default /*#__PURE__*/memo(NavBar); //# sourceMappingURL=index.js.map