Security News
Research
Data Theft Repackaged: A Case Study in Malicious Wrapper Packages on npm
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
react-bootstrap-table2-toolkit
Advanced tools
react-bootstrap-table2
support some additional features in react-bootstrap-table2-toolkit
.
In the future, this toolkit will support other feature like row delete, insert etc. Right now we only following features:
Live Demo For Table Search Live Demo For Export CSV Live Demo For Column Toggle
$ npm install react-bootstrap-table2-toolkit --save
// es5
require('react-bootstrap-table2-toolkit/dist/react-bootstrap-table2-toolkit.min.css');
// es6
import 'react-bootstrap-table2-toolkit/dist/react-bootstrap-table2-toolkit.min.css';
import ToolkitProvider, { Search } from 'react-bootstrap-table2-toolkit';
const { SearchBar } = Search;
//...
<ToolkitProvider
keyField="id"
data={ products }
columns={ columns }
search
>
{
props => (
<div>
<h3>Input something at below input field:</h3>
<SearchBar { ...props.searchProps } />
<hr />
<BootstrapTable
{ ...props.baseProps }
/>
</div>
)
}
</ToolkitProvider>
You have to enable the search functionality via search
prop on ToolkitProvider
.
ToolkitProvider
is a wrapper of react context, you are supposed to wrap the BootstrapTable
and SearchBar
as the child of ToolkitProvider
You should render SearchBar
with searchProps
as well. The position of SearchBar
is depends on you.
SearchBar
PropsCustom the class on input element.
Custom the placeholder on input element.
Custom the style on input element.
milionsecond for debounce user input.
Customize the screen reader text for the search input. (Default: "Search this table")
Accept a string that will be used for default searching when first time table render.
<ToolkitProvider
keyField="id"
data={ products }
columns={ columns }
search={ {
defaultSearch: 'search something here'
} }
>
// ...
</ToolkitProvider>
Acccpt a function which will be called when table try to match every cells when search happening. This function accept an object like below example:
function onColumnMatch({
searchText,
value,
column,
row
}) {
// implement your custom match logic on every cell value
}
<ToolkitProvider
keyField="id"
data={ products }
columns={ columns }
search={ {
onColumnMatch
} }
>
// ...
</ToolkitProvider>
Notes: You have to return
true
when your match logic is positive and vice versa.
If you want to search on the formatted data, you are supposed to enable this props. react-bootstrap-table2
will check if you define the column.formatter
when doing search.
<ToolkitProvider
keyField="id"
data={ products }
columns={ columns }
search={ {
searchFormatted: true
} }
>
// ...
</ToolkitProvider>
After search done, this callback function will be called with newest result.
<ToolkitProvider
keyField="id"
data={ products }
columns={ columns }
search={ {
afterSearch: (newResult) => console.log(newResult)
} }
>
// ...
</ToolkitProvider>
We have a built-in clear search function which allow user clear search status via clicking button:
import ToolkitProvider, { Search } from 'react-bootstrap-table2-toolkit';
const { SearchBar, ClearSearchButton } = Search;
<ToolkitProvider
keyField="id"
data={ products }
columns={ columns }
search
>
{
props => (
<div>
<SearchBar { ...props.searchProps } />
<ClearSearchButton { ...props.searchProps } />
....
</div>
)
}
</ToolkitProvider>
There are two steps to enable the export CSV functionality:
exportCSV
prop as true
on ToolkitProvider
.ExportCSVButton
with csvProps
. The position of ExportCSVButton
is depends on you.import ToolkitProvider, { CSVExport } from 'react-bootstrap-table2-toolkit';
const { ExportCSVButton } = CSVExport;
<ToolkitProvider
keyField="id"
data={ products }
columns={ columns }
exportCSV
>
{
props => (
<div>
<ExportCSVButton { ...props.csvProps }>Export CSV!!</ExportCSVButton>
<hr />
<BootstrapTable { ...props.baseProps } />
</div>
)
}
</ToolkitProvider>
Custom the csv file name.
Custom the csv file separator.
Default is false
. Give true to avoid to attach the csv header.
Default is true
. Give false
to attach the table footer if enabled.
Default is true
.
Default is text/plain;charset=utf-8
. Change to update the blob type of the exported file.
Default is true
. false
will only export current data which display on table.
Default is false
. true
will only export the data which is selected.
Default is false
. true
will only export the data which is filtered/searched.
When you configure this prop as true, you must turn off
exportAll
.
Let's see how to render the column toggle in your react component:
import BootstrapTable from 'react-bootstrap-table-next';
import ToolkitProvider, { ColumnToggle } from 'react-bootstrap-table2-toolkit';
<ToolkitProvider
keyField="id"
data={ products }
columns={ columns }
columnToggle
>
{
props => (
<div>
<ToggleList { ...props.columnToggleProps } />
<hr />
<BootstrapTable
{ ...props.baseProps }
/>
</div>
)
}
</ToolkitProvider>
columnToggleProps
props have enough information to let you custom the toggle list: [demo](Live Demo For Export CSV)
If you want to have default visibility on specified column, you can just give true
or false
on column.hidden
.
FAQs
The toolkit for react-bootstrap-table2
The npm package react-bootstrap-table2-toolkit receives a total of 19,526 weekly downloads. As such, react-bootstrap-table2-toolkit popularity was classified as popular.
We found that react-bootstrap-table2-toolkit 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.
Security News
Research
The Socket Research Team breaks down a malicious wrapper package that uses obfuscation to harvest credentials and exfiltrate sensitive data.
Research
Security News
Attackers used a malicious npm package typosquatting a popular ESLint plugin to steal sensitive data, execute commands, and exploit developer systems.
Security News
The Ultralytics' PyPI Package was compromised four times in one weekend through GitHub Actions cache poisoning and failure to rotate previously compromised API tokens.