47 lines
1.1 KiB
Java
47 lines
1.1 KiB
Java
import React, { PureComponent, createElement } from 'react';
|
|
import PropTypes from 'prop-types';
|
|
import { Button } from 'antd';
|
|
import styles from './index.less';
|
|
|
|
// TODO: 添加逻辑
|
|
|
|
class EditableLinkGroup extends PureComponent {
|
|
static propTypes = {
|
|
links: PropTypes.array,
|
|
onAdd: PropTypes.func,
|
|
linkElement: PropTypes.oneOfType([PropTypes.func, PropTypes.string]),
|
|
};
|
|
|
|
static defaultProps = {
|
|
links: [],
|
|
onAdd: () => {},
|
|
linkElement: 'a',
|
|
};
|
|
|
|
render() {
|
|
const { links, linkElement, onAdd } = this.props;
|
|
return (
|
|
<div className={styles.linkGroup}>
|
|
{links.map(link =>
|
|
createElement(
|
|
linkElement,
|
|
{
|
|
key: `linkGroup-item-${link.id || link.title}`,
|
|
to: link.href,
|
|
href: link.href,
|
|
},
|
|
link.title
|
|
)
|
|
)}
|
|
{
|
|
<Button size="small" type="primary" ghost onClick={onAdd} icon="plus">
|
|
添加
|
|
</Button>
|
|
}
|
|
</div>
|
|
);
|
|
}
|
|
}
|
|
|
|
export default EditableLinkGroup;
|