@fruits-chain/react-native-xiaoshu
Version:
React Native UI library
56 lines (52 loc) • 1.77 kB
JavaScript
import React, { memo } from 'react';
import { View, Text, StyleSheet } from 'react-native';
import { useTheme, widthStyle } from '../theme';
import { createStyles } from './style';
/**
* Divider 分割线
* @description 用于将内容分隔为多个区域。
*/
const Divider = _ref => {
let {
children,
style,
textStyle,
borderStyle,
leftBorderStyle,
rightBorderStyle,
dashed = false,
hairline = false,
contentPosition = 'center'
} = _ref;
const THEME_VAR = useTheme();
const STYLES = widthStyle(THEME_VAR, createStyles);
const borderCommonStyle = { ...STYLES.border,
borderStyle: dashed ? 'dashed' : 'solid',
borderBottomWidth: hairline ? StyleSheet.hairlineWidth : 1
};
const styles = [STYLES.divider, style];
const leftBorderStyles = [borderCommonStyle, STYLES.border_left, contentPosition === 'left' ? {
maxWidth: THEME_VAR.divider_content_left_width
} : null, borderStyle, leftBorderStyle];
const rightBorderStyles = [borderCommonStyle, STYLES.border_right, contentPosition === 'right' ? {
maxWidth: THEME_VAR.divider_content_right_width
} : null, borderStyle, rightBorderStyle];
if (children) {
return /*#__PURE__*/React.createElement(View, {
style: styles
}, /*#__PURE__*/React.createElement(View, {
style: leftBorderStyles
}), /*#__PURE__*/React.createElement(Text, {
style: [STYLES.text, textStyle]
}, children), /*#__PURE__*/React.createElement(View, {
style: rightBorderStyles
}));
}
return /*#__PURE__*/React.createElement(View, {
style: styles
}, /*#__PURE__*/React.createElement(View, {
style: [borderCommonStyle, borderStyle]
}));
};
export default /*#__PURE__*/memo(Divider);
//# sourceMappingURL=index.js.map