@td-design/react-native
Version:
react-native UI组件库
52 lines • 1.54 kB
JavaScript
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