table.tsx 861 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. import { Table as BS5Table } from 'react-bootstrap'
  2. import classnames from 'classnames'
  3. export function TableContainer({
  4. responsive,
  5. bordered,
  6. striped,
  7. children,
  8. }: React.ComponentProps<typeof BS5Table>) {
  9. return (
  10. <div
  11. className={classnames('table-container', {
  12. 'table-container-bordered': bordered,
  13. 'table-responsive': responsive,
  14. 'table-striped': striped,
  15. })}
  16. >
  17. {children}
  18. </div>
  19. )
  20. }
  21. type TableProps = React.ComponentProps<typeof BS5Table> & {
  22. container?: boolean
  23. }
  24. function Table({
  25. container = true,
  26. responsive,
  27. bordered,
  28. striped,
  29. ...rest
  30. }: TableProps) {
  31. return container ? (
  32. <TableContainer responsive={responsive} bordered={bordered}>
  33. <BS5Table striped={striped} {...rest} />
  34. </TableContainer>
  35. ) : (
  36. <BS5Table {...rest} />
  37. )
  38. }
  39. export default Table