89
app/routes/Tables/ExtendedTable/components/CellEdit.js
Executable file
89
app/routes/Tables/ExtendedTable/components/CellEdit.js
Executable file
@@ -0,0 +1,89 @@
|
||||
import React from 'react';
|
||||
import _ from 'lodash';
|
||||
import BootstrapTable from 'react-bootstrap-table-next';
|
||||
import cellEditFactory, { Type } from 'react-bootstrap-table2-editor';
|
||||
import faker from 'faker/locale/en_US';
|
||||
|
||||
import { randomArray } from './../../../../utilities';
|
||||
|
||||
const regions = [
|
||||
{ value: 'Europe', label: 'Europe' },
|
||||
{ value: 'North America', label: 'North America' },
|
||||
{ value: 'Asia', label: 'Asia' },
|
||||
{ value: 'Australia', label: 'Australia' },
|
||||
];
|
||||
|
||||
const columns = [
|
||||
{
|
||||
dataField: 'id',
|
||||
text: 'Product ID',
|
||||
headerClasses: 'text-nowrap'
|
||||
}, {
|
||||
dataField: 'available',
|
||||
text: 'Available',
|
||||
editor: {
|
||||
type: Type.CHECKBOX,
|
||||
value: 'Y:N'
|
||||
},
|
||||
formatter: function AvailableFormatter(cell) {
|
||||
return cell === 'Y' ?
|
||||
<i className="fa fa-fw fa-check"></i> :
|
||||
<i className="fa fa-fw fa-times"></i>;
|
||||
},
|
||||
headerClasses: 'text-nowrap'
|
||||
}, {
|
||||
dataField: 'name',
|
||||
text: 'Product Name',
|
||||
editor: {
|
||||
type: Type.TEXT
|
||||
},
|
||||
headerClasses: 'text-nowrap'
|
||||
}, {
|
||||
dataField: 'description',
|
||||
text: 'Product Description',
|
||||
editor: {
|
||||
type: Type.TEXTAREA
|
||||
},
|
||||
style: {
|
||||
width: '40%'
|
||||
},
|
||||
headerClasses: 'text-nowrap'
|
||||
}, {
|
||||
dataField: 'price',
|
||||
text: 'Product Price',
|
||||
headerClasses: 'text-nowrap'
|
||||
}, {
|
||||
dataField: 'region',
|
||||
text: 'Region',
|
||||
headerClasses: 'text-nowrap',
|
||||
editor: {
|
||||
type: Type.SELECT,
|
||||
options: regions
|
||||
}
|
||||
}
|
||||
];
|
||||
|
||||
const data = _.times(5, (index) => ({
|
||||
id: index,
|
||||
available: !Math.round(Math.random()) ? 'Y' : 'N',
|
||||
name: faker.commerce.productName(),
|
||||
description: faker.lorem.paragraph(),
|
||||
price: Math.round(2000 + Math.random() * 500),
|
||||
region: randomArray(_.map(regions, 'value'))
|
||||
}))
|
||||
|
||||
export const CellEdit = () => (
|
||||
<React.Fragment>
|
||||
<h6 className="mt-0">
|
||||
Cell Edit
|
||||
</h6>
|
||||
<BootstrapTable
|
||||
classes="table-responsive"
|
||||
keyField='id'
|
||||
data={ data }
|
||||
columns={ columns }
|
||||
bordered={ false }
|
||||
cellEdit={ cellEditFactory({ mode: 'click', blurToSave: true }) }
|
||||
/>
|
||||
</React.Fragment>
|
||||
);
|
Reference in New Issue
Block a user