wix-style-react
Version:
74 lines (66 loc) • 1.75 kB
JavaScript
import React from 'react';
import DataTable from '..';
import PropTypes from 'prop-types';
const style = {
width: '966px',
};
const baseData = [
{ firstName: 'Meghan', lastName: 'Bishop' },
{ firstName: 'Sara', lastName: 'Porter' },
{ firstName: 'Deborah', lastName: 'Rhodes' },
{ firstName: 'Walter', lastName: 'Jenning' },
];
const generateData = () => {
let data = [];
for (let i = 0; i < 2; i++) {
data = data.concat(baseData);
}
return data;
};
const MyRowDetailsComponent = props => {
return (
<div style={{ padding: '9px' }}>
<h2>User Details</h2>
<p>First name: {props.firstName}</p>
<p>Last name: {props.lastName}</p>
</div>
);
};
MyRowDetailsComponent.propTypes = {
firstName: PropTypes.string.isRequired,
lastName: PropTypes.string.isRequired,
};
class ExampleWithAnimatedRowDetails extends React.Component {
render() {
return (
<div style={style}>
<DataTable
dataHook="story-data-table"
data={generateData()}
rowDetails={row => <MyRowDetailsComponent {...row} />}
rowDetailsAnimation
allowMultiDetailsExpansion
columns={[
{
title: 'Row Number',
render: (row, rowNum) => '#' + (rowNum + 1),
width: '20%',
important: true,
},
{
title: 'First Name',
render: row => <span>{row.firstName}</span>,
width: '40%',
},
{
title: 'Last Name',
render: row => <span>{row.lastName}</span>,
width: '40%',
},
]}
/>
</div>
);
}
}
export default ExampleWithAnimatedRowDetails;