UNPKG

@uiw/react-native

Version:
32 lines 1.08 kB
import React from 'react'; import { ScrollView } from 'react-native'; import { getTreeNodeProps } from '../util'; import TreeNode from './TreeNode'; import { useTree } from './useTree'; const Tree = props => { const { flattenNodes, handleNodeExpand, handlerCheck, containerStyle, expandedKeys, checkedKeys, keyEntities, icon, checkable, disabled, showIcon } = useTree(props); const treeRender = item => { const treeNodeProps = getTreeNodeProps(item.value, { expandedKeys, checkedKeys: checkedKeys }); const level = keyEntities?.[item.value].level; const itemIcon = keyEntities?.[item.value].data.icon || icon; return <TreeNode icon={itemIcon} checkable={checkable} disabled={disabled} {...treeNodeProps} {...item} showIcon={showIcon} onClick={handleNodeExpand} onCheck={handlerCheck} level={!!level || level == 0 ? level : 1} />; }; return <ScrollView style={containerStyle}>{flattenNodes.map(item => treeRender(item))}</ScrollView>; }; Tree.displayName = 'Tree'; export default React.memo(Tree);