@@ -37,15 +37,15 @@ import * as ComponentStories from './Table.stories';
3737
3838## Growing Table
3939
40- ` Table ` with growing feature (` <TableGrowing onLoadMore={onLoadMore} type ={TableGrowingMode.Scroll} /> ` ):
40+ ` Table ` with growing feature (` <TableGrowing onLoadMore={onLoadMore} mode ={TableGrowingMode.Scroll} /> ` ):
4141
4242<Canvas of = { ComponentStories .GrowingTable } />
4343
4444<details >
4545
46- <summary >Show code</summary >
46+ <summary >Show static code</summary >
4747
48- ``` jsx
48+ ``` tsx
4949const createRows = (indexOffset ) => {
5050 return new Array (25 ).fill (' ' ).map ((_ , index ) => (
5151 <TableRow key = { ` ${index + indexOffset }-row ` } >
@@ -68,39 +68,32 @@ const createRows = (indexOffset) => {
6868 ));
6969};
7070
71- const GrowingTable = () => {
71+ const GrowingTable = (props ) => {
72+ const [mode, setMode] = useState <TableGrowingPropTypes [' mode' ]>(TableGrowingMode .Button );
7273 const [rows, setRows] = useState (createRows (1 ));
7374 const onLoadMore = () => {
7475 setRows ((prev ) => [... prev , ... createRows (prev .length + 1 )]);
7576 };
7677 return (
77- < div style= {{ height: ' 250px' , overflow: ' auto' }}>
78- < Table
79- {... otherProps}
80- headerRow= {
81- < TableHeaderRow sticky>
82- < TableHeaderCell width= {' 200px' } minWidth= {' 200px' }>
83- < span> Product< / span>
84- < / TableHeaderCell>
85- < TableHeaderCell minWidth= {' 200px' }>
86- < span> Supplier< / span>
87- < / TableHeaderCell>
88- < TableHeaderCell minWidth= {' 200px' }>
89- < span> Dimensions< / span>
90- < / TableHeaderCell>
91- < TableHeaderCell minWidth= {' 100px' } maxWidth= " 200px" >
92- < span> Weight< / span>
93- < / TableHeaderCell>
94- < TableHeaderCell minWidth= " 200px" >
95- < span> Price< / span>
96- < / TableHeaderCell>
97- < / TableHeaderRow>
98- }
99- features= {< TableGrowing onLoadMore= {onLoadMore} type= {TableGrowingMode .Scroll } / > }
78+ <>
79+ <Label showColon style = { { marginInlineEnd: ' 0.5rem' }} >
80+ Growing <code >mode</code >
81+ </Label >
82+ <SegmentedButton
83+ style = { { marginBlockEnd: ' 0.5rem' }}
84+ onSelectionChange = { (e ) => {
85+ setMode (e .detail .selectedItems [0 ].textContent as TableGrowingPropTypes [' mode' ]);
86+ }}
10087 >
101- {rows}
102- < / Table>
103- < / div>
88+ <SegmentedButtonItem selected = { mode === TableGrowingMode .Scroll } >Scroll</SegmentedButtonItem >
89+ <SegmentedButtonItem selected = { mode === TableGrowingMode .Button } >Button</SegmentedButtonItem >
90+ </SegmentedButton >
91+ <div style = { { height: ' 250px' , overflow: ' auto' }} >
92+ <Table { ... props } features = { <TableGrowing onLoadMore = { onLoadMore } mode = { mode } />} >
93+ { rows }
94+ </Table >
95+ </div >
96+ </>
10497 );
10598};
10699```
@@ -109,52 +102,36 @@ const GrowingTable = () => {
109102
110103## Table with row selection
111104
112- ` Table ` with selection feature (` <TableSelection mode="Multiple" /> ` ):
105+ ` Table ` with selection features (` <TableSelectionSingle /> ` & ` <TableSelectionMulti />` )
113106
114107<Canvas of = { ComponentStories .WithSelection } />
115108
116109<details >
117110
118- <summary >Show code</summary >
111+ <summary >Show static code</summary >
119112
120- ``` jsx
113+ ``` tsx
121114function TableWithRowSelection(props ) {
122- const [mode , setMode ] = useState ( TableSelectionMode . Multiple );
115+ const [mode, setMode] = useState < ' Single ' | ' Multi ' | ' None ' >( ' Single ' );
123116 return (
124117 <>
125118 <SegmentedButton
126119 onSelectionChange = { (e ) => {
127- setMode (e .detail .selectedItems [0 ].textContent );
120+ setMode (e .detail .selectedItems [0 ].textContent as ' Single ' | ' Multi ' | ' None ' );
128121 }}
129122 >
130- {Object .values (TableSelectionMode).map ((selectionMode ) => (
131- < SegmentedButtonItem key= {selectionMode} selected= {selectionMode === mode}>
132- {selectionMode}
133- < / SegmentedButtonItem>
134- ))}
123+ <SegmentedButtonItem selected = { ' None' === mode } >None</SegmentedButtonItem >
124+ <SegmentedButtonItem selected = { ' Single' === mode } >Single</SegmentedButtonItem >
125+ <SegmentedButtonItem selected = { ' Multi' === mode } >Multi</SegmentedButtonItem >
135126 </SegmentedButton >
136127 <Table
137128 { ... props }
138- headerRow= {
139- < TableHeaderRow sticky>
140- < TableHeaderCell width= {' 200px' } minWidth= {' 200px' }>
141- < span> Product< / span>
142- < / TableHeaderCell>
143- < TableHeaderCell minWidth= {' 200px' }>
144- < span> Supplier< / span>
145- < / TableHeaderCell>
146- < TableHeaderCell minWidth= {' 200px' }>
147- < span> Dimensions< / span>
148- < / TableHeaderCell>
149- < TableHeaderCell minWidth= {' 100px' } maxWidth= " 200px" >
150- < span> Weight< / span>
151- < / TableHeaderCell>
152- < TableHeaderCell minWidth= " 200px" >
153- < span> Price< / span>
154- < / TableHeaderCell>
155- < / TableHeaderRow>
129+ features = {
130+ <>
131+ { ' Single' === mode && <TableSelectionSingle />}
132+ { ' Multi' === mode && <TableSelectionMulti />}
133+ </>
156134 }
157- features= {< TableSelection mode= {mode} / > }
158135 >
159136 <TableRow >
160137 <TableCell >
@@ -206,7 +183,7 @@ function TableWithRowSelection(props) {
206183
207184<details >
208185
209- <summary >Show code</summary >
186+ <summary >Show static code</summary >
210187
211188``` tsx
212189// enrich data with `position` (if not already available)
@@ -401,21 +378,17 @@ Enable drag-and-drop by using the `onMoveOver` and `onMove` event in combination
401378<Description of = { TableVirtualizer } />
402379<ArgTypes of = { TableVirtualizer } />
403380
404- ## TableVirtualizer
405-
406- <Description of = { TableVirtualizer } />
407- <ArgTypes of = { TableVirtualizer } />
408-
409- ## TableVirtualizer
381+ ## TableSelectionMulti
410382
411383<Description of = { TableSelectionMulti } />
412384<ArgTypes of = { TableSelectionMulti } />
413- ## TableVirtualizer
385+
386+ ## TableSelectionSingle
414387
415388<Description of = { TableSelectionSingle } />
416389<ArgTypes of = { TableSelectionSingle } />
417390
418- ## TableSelection
391+ ## TableSelection (deprecated)
419392
420393** Deprecated!**
421394
0 commit comments