UNPKG

@td-design/react-native

Version:

react-native UI组件库

52 lines 1.54 kB
import React, { memo } from 'react'; import { useTheme } from '@shopify/restyle'; import Flex from '../flex'; import Pressable from '../pressable'; import Text from '../text'; import Checkbox from './Checkbox'; const TreeNode = _ref => { let { id, text, disabled, onPress, style, textStyle, customCheckIcon, level, activeOpacity, nodeStyle, checkable, handleCheck, currentKeys } = _ref; const theme = useTheme(); const checked = currentKeys.includes(id); const checkedStatus = checked ? 'all' : 'none'; return /*#__PURE__*/React.createElement(Flex, { style: [{ marginLeft: level * theme.spacing.x2 }, nodeStyle, style] }, checkable && /*#__PURE__*/React.createElement(Pressable, { activeOpacity: activeOpacity, disabled: disabled, onPress: () => handleCheck(id), style: { marginRight: theme.spacing.x1 } }, customCheckIcon ? customCheckIcon(checkedStatus) : /*#__PURE__*/React.createElement(Checkbox, { disabled: disabled, checked: checkedStatus })), /*#__PURE__*/React.createElement(Pressable, { activeOpacity: activeOpacity, onPress: () => onPress === null || onPress === void 0 ? void 0 : onPress(id), disabled: disabled }, /*#__PURE__*/React.createElement(Text, { variant: "p0", color: disabled ? 'disabled' : checked ? 'primary200' : 'text', style: textStyle }, text))); }; TreeNode.displayName = 'TreeNode'; export default /*#__PURE__*/memo(TreeNode); //# sourceMappingURL=TreeNode.js.map