UNPKG

@td-design/react-native

Version:

react-native UI组件库

64 lines 2.03 kB
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); } import React, { memo, useMemo } from 'react'; import Box from '../box'; import Flex from '../flex'; import helpers from '../helpers'; import ListItem from '../list-item'; import Text from '../text'; const { ONE_PIXEL } = helpers; const List = _ref => { let { header, extra, itemBackgroundColor, itemStyle, items = [] } = _ref; const Header = useMemo(() => { if (!header) return null; if (typeof header === 'string') { return /*#__PURE__*/React.createElement(ListHeader, { text: header, extra: extra }); } return header; }, [header, extra]); return /*#__PURE__*/React.createElement(Box, null, Header, items.map((props, index) => { return /*#__PURE__*/React.createElement(ListItem, _extends({ key: index }, props, { backgroundColor: itemBackgroundColor, style: [itemStyle, props.style] })); })); }; List.displayName = 'List'; const ListHeader = /*#__PURE__*/memo(_ref2 => { let { text, extra, textStyle, headerStyle } = _ref2; if (text === '') return null; return /*#__PURE__*/React.createElement(Flex, { justifyContent: "space-between", alignItems: "center", paddingHorizontal: "x2", paddingVertical: 'x2', backgroundColor: "white", borderBottomWidth: ONE_PIXEL, borderColor: 'border', style: headerStyle }, /*#__PURE__*/React.createElement(Box, null, /*#__PURE__*/React.createElement(Text, { variant: "p1", color: "text", style: textStyle }, text)), /*#__PURE__*/React.createElement(Box, null, extra)); }); ListHeader.displayName = 'ListHeader'; export { List, ListHeader }; //# sourceMappingURL=index.js.map