From e72ad0586ea5473989040e149f0206cb8889c22b Mon Sep 17 00:00:00 2001 From: AllenFang Date: Sat, 2 Jun 2018 15:20:57 +0800 Subject: [PATCH] add story for custom selection column --- .../row-selection/custom-selection.js | 107 ++++++++++++++++++ .../stories/index.js | 2 + 2 files changed, 109 insertions(+) create mode 100644 packages/react-bootstrap-table2-example/examples/row-selection/custom-selection.js diff --git a/packages/react-bootstrap-table2-example/examples/row-selection/custom-selection.js b/packages/react-bootstrap-table2-example/examples/row-selection/custom-selection.js new file mode 100644 index 0000000..4291c68 --- /dev/null +++ b/packages/react-bootstrap-table2-example/examples/row-selection/custom-selection.js @@ -0,0 +1,107 @@ +/* eslint react/prop-types: 0 */ +/* eslint no-param-reassign: 0 */ +import React from 'react'; + +import BootstrapTable from 'react-bootstrap-table-next'; +import Code from 'components/common/code-block'; +import { productsGenerator } from 'utils/common'; + +const products = productsGenerator(); + +const columns = [{ + dataField: 'id', + text: 'Product ID' +}, { + dataField: 'name', + text: 'Product Name' +}, { + dataField: 'price', + text: 'Product Price' +}]; + +const selectRow1 = { + mode: 'radio', + clickToSelect: true, + selectionHeaderRenderer: () => 'X', + selectionRenderer: ({ mode, ...rest }) => ( + + ) +}; + +const selectRow2 = { + mode: 'checkbox', + clickToSelect: true, + selectionHeaderRenderer: ({ indeterminate, ...rest }) => ( + { + if (input) input.indeterminate = indeterminate; + } } + { ...rest } + /> + ), + selectionRenderer: ({ mode, ...rest }) => ( + + ) +}; + +const sourceCode1 = `\ +import BootstrapTable from 'react-bootstrap-table-next'; + +const columns = ....; + +const selectRow = { + mode: 'radio', + clickToSelect: true, + selectionHeaderRenderer: () => 'X', + selectionRenderer: ({ mode, ...rest }) => ( + + ) +}; + + +`; + +const sourceCode2 = `\ +import BootstrapTable from 'react-bootstrap-table-next'; + +const columns = ....; + +const selectRow = { + mode: 'checkbox', + clickToSelect: true, + selectionHeaderRenderer: ({ indeterminate, ...rest }) => ( + { + if (input) input.indeterminate = indeterminate; + } } + { ...rest } + /> + ), + selectionRenderer: ({ mode, ...rest }) => ( + + ) +}; + + +`; + +export default () => ( +
+ + { sourceCode1 } + + { sourceCode2 } +
+); diff --git a/packages/react-bootstrap-table2-example/stories/index.js b/packages/react-bootstrap-table2-example/stories/index.js index 42f2985..a3fe4c3 100644 --- a/packages/react-bootstrap-table2-example/stories/index.js +++ b/packages/react-bootstrap-table2-example/stories/index.js @@ -95,6 +95,7 @@ import ClickToSelectWithCellEditTable from 'examples/row-selection/click-to-sele import SelectionNoDataTable from 'examples/row-selection/selection-no-data'; import SelectionStyleTable from 'examples/row-selection/selection-style'; import SelectionClassTable from 'examples/row-selection/selection-class'; +import CustomSelectionTable from 'examples/row-selection/custom-selection'; import NonSelectableRowsTable from 'examples/row-selection/non-selectable-rows'; import SelectionBgColorTable from 'examples/row-selection/selection-bgcolor'; import SelectionHooks from 'examples/row-selection/selection-hooks'; @@ -222,6 +223,7 @@ storiesOf('Row Selection', module) .add('Selection without Data', () => ) .add('Selection Style', () => ) .add('Selection Class', () => ) + .add('Custom Selection', () => ) .add('Selection Background Color', () => ) .add('Not Selectabled Rows', () => ) .add('Selection Hooks', () => )