ant-design/components/tree/demo/_semantic.tsx
2025-05-24 09:07:54 +08:00

72 lines
1.6 KiB
TypeScript

import React from 'react';
import {
DownOutlined,
FrownFilled,
FrownOutlined,
MehOutlined,
SmileOutlined,
} from '@ant-design/icons';
import { Tree, TreeDataNode } from 'antd';
import SemanticPreview from '../../../.dumi/theme/common/SemanticPreview';
import useLocale from '../../../.dumi/hooks/useLocale';
const locales = {
cn: {
root: '根元素',
item: '条目元素',
itemTitle: '标题元素',
itemIcon: '图标元素',
},
en: {
root: 'Root element',
item: 'Item element',
itemTitle: 'title element',
itemIcon: 'Icon element',
},
};
const treeData: TreeDataNode[] = [
{
title: 'parent 1',
key: '0-0',
icon: <SmileOutlined />,
children: [
{
title: 'leaf',
key: '0-0-0',
icon: <MehOutlined />,
},
{
title: 'leaf',
key: '0-0-1',
icon: ({ selected }) => (selected ? <FrownFilled /> : <FrownOutlined />),
},
],
},
];
const App: React.FC = () => {
const [locale] = useLocale(locales);
return (
<SemanticPreview
componentName="Tree"
semantics={[
{ name: 'root', desc: locale.root, version: '6.0.0' },
{ name: 'item', desc: locale.item, version: '6.0.0' },
{ name: 'itemIcon', desc: locale.itemIcon, version: '6.0.0' },
{ name: 'itemTitle', desc: locale.itemTitle, version: '6.0.0' },
]}
>
<Tree
showIcon
defaultExpandAll
defaultSelectedKeys={['0-0-0']}
switcherIcon={<DownOutlined />}
treeData={treeData}
/>
</SemanticPreview>
);
};
export default App;