import React, { Component } from 'react';
import ModalButton from 'components/ModalButton';
import PropTypes from 'prop-types';
import { Table } from 'antd';
export default class TableButton extends Component {
static propTypes() {
return {
title: PropTypes.string.isRequired,
buttonType: PropTypes.string,
isDanger: PropTypes.bool,
data: PropTypes.array,
columns: PropTypes.array,
modalSize: PropTypes.string,
className: PropTypes.func,
buttonText: PropTypes.string,
style: PropTypes.string,
hasPagination: PropTypes.bool,
};
}
static defaultProps = {
buttonType: 'link',
isDanger: false,
data: [],
columns: [],
modalSize: 'middle',
className: '',
buttonText: t('View Detail'),
title: t('Detail'),
hasPagination: true,
};
renderTable = () => {
const { data, columns, hasPagination } = this.props;
const configs = {
columns,
dataSource: data,
};
if (!hasPagination) {
configs.pagination = false;
}
return <Table {...configs} />;
};
render() {
const { buttonType, isDanger, title, buttonText, modalSize, style } =
this.props;
const configs = {
buttonType,
isDanger,
title,
buttonText,
modalSize,
style,
render: this.renderTable,
};
return <ModalButton {...configs} />;
}
}