@@ -10,6 +10,7 @@ import { CTableDataCell, CTableDataCellProps } from './CTableDataCell'
10
10
import { CTableRow , CTableRowProps } from './CTableRow'
11
11
import { CTableFoot , CTableFootProps } from './CTableFoot'
12
12
import { CTableCaption } from './CTableCaption'
13
+ import { CTableResponsiveWrapper } from './CTableResponsiveWrapper'
13
14
14
15
export interface CTableProps extends Omit < TableHTMLAttributes < HTMLTableElement > , 'align' > {
15
16
/**
@@ -206,72 +207,62 @@ export const CTable = forwardRef<HTMLTableElement, CTableProps>(
206
207
: pretifyName ( column . key )
207
208
: pretifyName ( column )
208
209
209
- const Table = ( ) => (
210
- < table className = { _className } { ...rest } ref = { ref } >
211
- { ( ( caption && caption !== 'top' ) || captionTop ) && (
212
- < CTableCaption > { caption || captionTop } </ CTableCaption >
213
- ) }
214
- { columns && (
215
- < CTableHead { ...tableHeadProps } >
216
- < CTableRow >
217
- { columns . map ( ( column : Column , index : number ) => (
218
- < CTableHeaderCell
219
- { ...( column . _props && { ...column . _props } ) }
220
- { ...( column . _style && { style : { ...column . _style } } ) }
221
- key = { index }
222
- >
223
- { label ( column ) }
224
- </ CTableHeaderCell >
225
- ) ) }
226
- </ CTableRow >
227
- </ CTableHead >
228
- ) }
229
- { items && (
230
- < CTableBody >
231
- { items . map ( ( item : Item , index : number ) => (
232
- < CTableRow { ...( item . _props && { ...item . _props } ) } key = { index } >
233
- { rawColumnNames . map ( ( colName : string , index : number ) => {
234
- return item [ colName ] ? (
235
- < CTableDataCell
236
- { ...( item . _cellProps && {
237
- ...( item . _cellProps [ 'all' ] && { ...item . _cellProps [ 'all' ] } ) ,
238
- ...( item . _cellProps [ colName ] && { ...item . _cellProps [ colName ] } ) ,
239
- } ) }
240
- key = { index }
241
- >
242
- { item [ colName ] }
243
- </ CTableDataCell >
244
- ) : null
245
- } ) }
210
+ return (
211
+ < CTableResponsiveWrapper responsive = { responsive } >
212
+ < table className = { _className } { ...rest } ref = { ref } >
213
+ { ( ( caption && caption !== 'top' ) || captionTop ) && (
214
+ < CTableCaption > { caption || captionTop } </ CTableCaption >
215
+ ) }
216
+ { columns && (
217
+ < CTableHead { ...tableHeadProps } >
218
+ < CTableRow >
219
+ { columns . map ( ( column : Column , index : number ) => (
220
+ < CTableHeaderCell
221
+ { ...( column . _props && { ...column . _props } ) }
222
+ { ...( column . _style && { style : { ...column . _style } } ) }
223
+ key = { index }
224
+ >
225
+ { label ( column ) }
226
+ </ CTableHeaderCell >
227
+ ) ) }
246
228
</ CTableRow >
247
- ) ) }
248
- </ CTableBody >
249
- ) }
250
- { children }
251
- { footer && (
252
- < CTableFoot { ...tableFootProps } >
253
- < CTableRow >
254
- { footer . map ( ( item : FooterItem , index : number ) => (
255
- < CTableDataCell { ...( item . _props && { ...item . _props } ) } key = { index } >
256
- { typeof item === 'object' ? item . label : item }
257
- </ CTableDataCell >
229
+ </ CTableHead >
230
+ ) }
231
+ { items && (
232
+ < CTableBody >
233
+ { items . map ( ( item : Item , index : number ) => (
234
+ < CTableRow { ...( item . _props && { ...item . _props } ) } key = { index } >
235
+ { rawColumnNames . map ( ( colName : string , index : number ) => {
236
+ return item [ colName ] ? (
237
+ < CTableDataCell
238
+ { ...( item . _cellProps && {
239
+ ...( item . _cellProps [ 'all' ] && { ...item . _cellProps [ 'all' ] } ) ,
240
+ ...( item . _cellProps [ colName ] && { ...item . _cellProps [ colName ] } ) ,
241
+ } ) }
242
+ key = { index }
243
+ >
244
+ { item [ colName ] }
245
+ </ CTableDataCell >
246
+ ) : null
247
+ } ) }
248
+ </ CTableRow >
258
249
) ) }
259
- </ CTableRow >
260
- </ CTableFoot >
261
- ) }
262
- </ table >
263
- )
264
-
265
- return responsive ? (
266
- < div
267
- className = {
268
- typeof responsive === 'boolean' ? 'table-responsive' : `table-responsive- ${ responsive } `
269
- }
270
- >
271
- < Table / >
272
- </ div >
273
- ) : (
274
- < Table / >
250
+ </ CTableBody >
251
+ ) }
252
+ { children }
253
+ { footer && (
254
+ < CTableFoot { ... tableFootProps } >
255
+ < CTableRow >
256
+ { footer . map ( ( item : FooterItem , index : number ) => (
257
+ < CTableDataCell { ... ( item . _props && { ... item . _props } ) } key = { index } >
258
+ { typeof item === 'object' ? item . label : item }
259
+ </ CTableDataCell >
260
+ ) ) }
261
+ </ CTableRow >
262
+ </ CTableFoot >
263
+ ) }
264
+ </ table >
265
+ </ CTableResponsiveWrapper >
275
266
)
276
267
} ,
277
268
)
0 commit comments