Proyectos de Subversion LeadersLinked - SPA

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3462 stevensc 1
import React from 'react';
3518 stevensc 2
import { Box, Typography } from '@mui/material';
3462 stevensc 3
 
3518 stevensc 4
export function Grid({
5
  items = [],
6
  renderItem = () => {},
7
  emptyMessage = '',
8
  keyExtractor = (item) => item,
9
  autoFit = true,
3519 stevensc 10
  minWidth = 200,
3557 stevensc 11
  maxWidth = 250,
3518 stevensc 12
  columns = 3,
3661 stevensc 13
  gap = 1,
14
  renderFooter
3518 stevensc 15
}) {
3661 stevensc 16
  if (!items || !items.length) {
3462 stevensc 17
    return <Typography>{emptyMessage}</Typography>;
18
  }
19
 
3518 stevensc 20
  return (
3661 stevensc 21
    <>
22
      <Box
23
        sx={{
24
          display: 'grid',
25
          gridTemplateColumns: autoFit
26
            ? `repeat(auto-fit, minmax(${minWidth}px, ${maxWidth}px))`
27
            : `repeat(${columns}, 1fr)`,
28
          gap
29
        }}
30
      >
31
        {items.map((item, index) => (
32
          <Box key={keyExtractor(item, index)}>{renderItem(item, index)}</Box>
33
        ))}
34
      </Box>
35
      {renderFooter && renderFooter()}
36
    </>
3518 stevensc 37
  );
3462 stevensc 38
}