UNPKG

@td-design/react-native

Version:

react-native UI组件库

77 lines 2.05 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 from 'react'; import { ScrollView } from 'react-native'; import TreeGroup from './TreeGroup'; import TreeNode from './TreeNode'; import { useTree } from './useTree'; const Tree = _ref => { let { data, style, nodeStyle, checkable = true, activeOpacity = 0.6, checkedKeys, defaultCheckedKeys, onCheck, defaultExpandedKeys, expandedKeys, expandAll, onExpand, customExpandIcon } = _ref; const { currentKeys, openedKeys, flatData, handleCheck, handleExpand } = useTree({ data, checkable, checkedKeys, defaultCheckedKeys, onCheck, defaultExpandedKeys, expandedKeys, expandAll, onExpand }); const renderItem = (item, level) => { if (item.items && Array.isArray(item.items) && item.items.length > 0) { return /*#__PURE__*/React.createElement(TreeGroup, _extends({ key: item.id }, item, { level, checkable, currentKeys, openedKeys, handleCheck, handleExpand, customExpandIcon, flatData, activeOpacity, nodeStyle }), item.items.map(item => renderItem(item, level + 1))); } return /*#__PURE__*/React.createElement(TreeNode, _extends({ key: item.id }, item, { level, checkable, currentKeys, handleCheck, activeOpacity, nodeStyle })); }; return /*#__PURE__*/React.createElement(ScrollView, { bounces: false, horizontal: false, showsVerticalScrollIndicator: false, style: style }, data.map(item => renderItem(item, 1))); }; Tree.displayName = 'Tree'; export default Tree; //# sourceMappingURL=index.js.map