@@ -25,6 +25,7 @@ import { getStyledPropsArgTypes } from '~components/Box/BaseBox/storybookArgType
25
25
import { Button } from '~components/Button' ;
26
26
import { IconButton } from '~components/Button/IconButton' ;
27
27
import { CheckIcon , CloseIcon } from '~components/Icons' ;
28
+ import { TableVirtulized } from '../Table.web' ;
28
29
29
30
export default {
30
31
title : 'Components/Table' ,
@@ -71,7 +72,7 @@ export default {
71
72
} as Meta < TableProps < unknown > > ;
72
73
73
74
const nodes : Item [ ] = [
74
- ...Array . from ( { length : 100 } , ( _ , i ) => ( {
75
+ ...Array . from ( { length : 50 } , ( _ , i ) => ( {
75
76
id : ( i + 1 ) . toString ( ) ,
76
77
paymentId : `rzp${ Math . floor ( Math . random ( ) * 1000000 ) } ` ,
77
78
amount : Number ( ( Math . random ( ) * 10000 ) . toFixed ( 2 ) ) ,
@@ -111,6 +112,79 @@ const data: TableData<Item> = {
111
112
} ;
112
113
113
114
const TableTemplate : StoryFn < typeof TableComponent > = ( { ...args } ) => {
115
+ return (
116
+ < Box padding = "spacing.5" overflow = "auto" height = "200px" >
117
+ < TableComponent
118
+ { ...args }
119
+ data = { data }
120
+ onSelectionChange = { console . log }
121
+ selectionType = "single"
122
+ height = "100%"
123
+ >
124
+ { ( tableData ) => (
125
+ < TableVirtulized
126
+ tableData = { tableData }
127
+ header = { ( ) => (
128
+ < TableHeaderRow >
129
+ < TableHeaderCell headerKey = "PAYMENT_ID" > ID</ TableHeaderCell >
130
+ < TableHeaderCell headerKey = "AMOUNT" > Amount</ TableHeaderCell >
131
+ < TableHeaderCell headerKey = "ACCOUNT" > Account</ TableHeaderCell >
132
+ < TableHeaderCell headerKey = "DATE" > Date</ TableHeaderCell >
133
+ < TableHeaderCell headerKey = "METHOD" > Method</ TableHeaderCell >
134
+ < TableHeaderCell headerKey = "STATUS" > Status</ TableHeaderCell >
135
+ </ TableHeaderRow >
136
+ ) }
137
+ body = { ( tableItem , index ) => (
138
+ < TableRow
139
+ key = { index }
140
+ item = { tableItem }
141
+ onClick = { ( ) => {
142
+ console . log ( 'where' ) ;
143
+ } }
144
+ >
145
+ < TableCell >
146
+ < Code size = "medium" > { tableItem . paymentId } </ Code >
147
+ </ TableCell >
148
+ < TableEditableCell
149
+ accessibilityLabel = "Amount"
150
+ placeholder = "Enter text"
151
+ successText = "Amount is valid"
152
+ />
153
+ < TableCell > { tableItem . account } </ TableCell >
154
+ < TableCell >
155
+ { tableItem . date ?. toLocaleDateString ( 'en-IN' , {
156
+ year : 'numeric' ,
157
+ month : '2-digit' ,
158
+ day : '2-digit' ,
159
+ } ) }
160
+ </ TableCell >
161
+ < TableCell > { tableItem . method } </ TableCell >
162
+ < TableCell >
163
+ < Badge
164
+ size = "medium"
165
+ color = {
166
+ tableItem . status === 'Completed'
167
+ ? 'positive'
168
+ : tableItem . status === 'Pending'
169
+ ? 'notice'
170
+ : tableItem . status === 'Failed'
171
+ ? 'negative'
172
+ : 'primary'
173
+ }
174
+ >
175
+ { tableItem . status }
176
+ </ Badge >
177
+ </ TableCell >
178
+ </ TableRow >
179
+ ) }
180
+ />
181
+ ) }
182
+ </ TableComponent >
183
+ </ Box >
184
+ ) ;
185
+ } ;
186
+
187
+ export const NormalTable : StoryFn < typeof TableComponent > = ( { ...args } ) => {
114
188
return (
115
189
< Box padding = "spacing.5" overflow = "auto" minHeight = "400px" >
116
190
< TableComponent
@@ -120,6 +194,7 @@ const TableTemplate: StoryFn<typeof TableComponent> = ({ ...args }) => {
120
194
onSelectionChange = { console . log }
121
195
isFirstColumnSticky
122
196
selectionType = "single"
197
+ height = "100%"
123
198
toolbar = {
124
199
< TableToolbar title = "Showing 1-10 [Items]" selectedTitle = "Showing 1-10 [Items]" >
125
200
< TableToolbarActions >
@@ -137,15 +212,6 @@ const TableTemplate: StoryFn<typeof TableComponent> = ({ ...args }) => {
137
212
DATE : ( array ) => array . sort ( ( a , b ) => a . date . getTime ( ) - b . date . getTime ( ) ) ,
138
213
STATUS : ( array ) => array . sort ( ( a , b ) => a . status . localeCompare ( b . status ) ) ,
139
214
} }
140
- pagination = {
141
- < TablePagination
142
- onPageChange = { console . log }
143
- defaultPageSize = { 10 }
144
- onPageSizeChange = { console . log }
145
- showPageSizePicker
146
- showPageNumberSelector
147
- />
148
- }
149
215
>
150
216
{ ( tableData ) => (
151
217
< >
@@ -227,19 +293,6 @@ const TableTemplate: StoryFn<typeof TableComponent> = ({ ...args }) => {
227
293
</ TableRow >
228
294
) ) }
229
295
</ TableBody >
230
- < TableFooter >
231
- < TableFooterRow >
232
- < TableFooterCell > Total</ TableFooterCell >
233
- < TableFooterCell > -</ TableFooterCell >
234
- < TableFooterCell > -</ TableFooterCell >
235
- < TableFooterCell > -</ TableFooterCell >
236
- < TableFooterCell > -</ TableFooterCell >
237
- { args . selectionType === 'multiple' ? < TableFooterCell > -</ TableFooterCell > : null }
238
- < TableFooterCell >
239
- < Amount value = { 10 } />
240
- </ TableFooterCell >
241
- </ TableFooterRow >
242
- </ TableFooter >
243
296
</ >
244
297
) }
245
298
</ TableComponent >
0 commit comments