Research
Security News
Malicious npm Packages Inject SSH Backdoors via Typosquatted Libraries
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
react-bootstrap-table-nextgen-editor
Advanced tools
It's the editor addon for react-bootstrap-table-nextgen
react-bootstrap-table-nextgen
separate the cell edit code base to react-bootstrap-table-nextgen-editor
, so there's a little bit different when you use cell edit than react-bootstrap-table
. In the following, we are going to show you how to enable the cell edit
$ npm install react-bootstrap-table-nextgen-editor --save
We have two ways to trigger a editable cell as editing cell:
That's look into how we enable the cell edit on tabe:
import cellEditFactory from 'react-bootstrap-table-nextgen-editor';
// omit
<BootstrapTable
keyField="id"
data={ products }
columns={ columns }
cellEdit={ cellEditFactory({ mode: 'click' }) }
/>
How user save their new editings? We offer two ways:
react-bootstrap-table-nextgen
support you to configure the cell editable on three level:
column.validator will help you to work on it!
react-bootstrap-table-nextgen
have following predefined editor:
In a nutshell, you just only give a column.editor and define the type
:
import { Type } from 'react-bootstrap-table-nextgen-editor';
const columns = [
..., {
dataField: 'done',
text: 'Done',
editor: {
type: Type.SELECT | Type.TEXTAREA | Type.CHECKBOX | Type.DATE,
... // The rest properties will be rendered into the editor's DOM element
}
}
]
In the following, we go though all the predefined editors:
Dropdown editor give a select menu to choose a data from a list. When use dropdown editor, either editor.options
or editor.getOptions
should be required prop.
This is most simple case for assign the dropdown options data directly.
import { Type } from 'react-bootstrap-table-nextgen-editor';
const columns = [
..., {
dataField: 'type',
text: 'Job Type',
editor: {
type: Type.SELECT,
options: [{
value: 'A',
label: 'A'
}, {
value: 'B',
label: 'B'
}, {
value: 'C',
label: 'C'
}, {
value: 'D',
label: 'D'
}, {
value: 'E',
label: 'E'
}]
}
}];
It is much flexible which accept a function and you can assign the dropdown options dynamically.
There are two case for getOptions
:
getOptions
callback functionsetOptions
function argument when you get the options from remote.// Synchronous
const columns = [
..., {
dataField: 'type',
text: 'Job Type',
editor: {
type: Type.SELECT,
getOptions: (setOptions, { row, column }) => [.....]
}
}];
// Asynchronous
const columns = [
..., {
dataField: 'type',
text: 'Job Type',
editor: {
type: Type.SELECT,
getOptions: (setOptions, { row, column }) => {
setTimeout(() => setOptions([...]), 1500);
}
}
}];
here is an online example.
Date editor is use <input type="date">
, the configuration is very simple:
const columns = [
..., {
dataField: 'inStockDate',
text: 'Stock Date',
formatter: (cell) => {
let dateObj = cell;
if (typeof cell !== 'object') {
dateObj = new Date(cell);
}
return `${('0' + dateObj.getUTCDate()).slice(-2)}/${('0' + (dateObj.getUTCMonth() + 1)).slice(-2)}/${dateObj.getUTCFullYear()}`;
},
editor: {
type: Type.DATE
}
}];
Textarea editor is use <input type="textarea">
, user can press ENTER
to change line and in the react-bootstrap-table2
, user allow to save result via press SHIFT
+ ENTER
.
const columns = [
..., {
dataField: 'comment',
text: 'Product Comments',
editor: {
type: Type.TEXTAREA
}
}];
Checkbox editor allow you to have a pair value choice, the editor.value
is required value to represent the actual value for check and uncheck.
const columns = [
..., {
dataField: 'comment',
text: 'Product Comments',
editor: {
type: Type.CHECKBOX,
value: 'Y:N'
}
}];
If you feel above predefined editors are not satisfied to your requirement, you can certainly custom the editor via column.editorRenderer. It accept a function and pass following arguments when function called:
editorProps
: Some useful attributes you can use on DOM editor, like class, style etc.value
: Current cell valuerow
: Current row datacolumn
: Current column definitionrowIndex
: Current row indexcolumnIndex
: Current column indexNote when implement a custom React editor component, this component should have a getValue function which return current value on editor
Note when you want to save value, you can call editorProps.onUpdate function
Following is a short example:
class QualityRanger extends React.Component {
static propTypes = {
value: PropTypes.number,
onUpdate: PropTypes.func.isRequired
}
static defaultProps = {
value: 0
}
getValue() {
return parseInt(this.range.value, 10);
}
render() {
const { value, onUpdate, ...rest } = this.props;
return [
<input
{ ...rest }
key="range"
ref={ node => this.range = node }
type="range"
min="0"
max="100"
/>,
<button
key="submit"
className="btn btn-default"
onClick={ () => onUpdate(this.getValue()) }
>
done
</button>
];
}
}
const columns = [
..., {
dataField: 'quality',
text: 'Product Quality',
editorRenderer: (editorProps, value, row, column, rowIndex, columnIndex) => (
<QualityRanger { ...editorProps } value={ value } />
)
}];
FAQs
It's the editor addon for react-bootstrap-table-nextgen
The npm package react-bootstrap-table-nextgen-editor receives a total of 14 weekly downloads. As such, react-bootstrap-table-nextgen-editor popularity was classified as not popular.
We found that react-bootstrap-table-nextgen-editor demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.
Security News
MITRE's 2024 CWE Top 25 highlights critical software vulnerabilities like XSS, SQL Injection, and CSRF, reflecting shifts due to a refined ranking methodology.
Security News
In this segment of the Risky Business podcast, Feross Aboukhadijeh and Patrick Gray discuss the challenges of tracking malware discovered in open source softare.