Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 3684 | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
3719 stevensc 1
import React from 'react';
2
import { Box, Typography } from '@mui/material';
3
 
4
export function Grid({
5
  items = [],
6
  renderItem = () => {},
7
  emptyMessage = '',
8
  keyExtractor = (item) => item,
9
  columns = 3,
10
  gap = 1,
11
  renderFooter
12
}) {
13
  if (!items || !items.length) {
14
    return <Typography>{emptyMessage}</Typography>;
15
  }
16
 
17
  return (
18
    <>
19
      <Box
20
        sx={{
21
          display: 'grid',
22
          gridTemplateColumns: ({ spacing }) => ({
23
            xs: 'repeat(1, 1fr)',
24
            md: `repeat(auto-fill, calc(100% / ${columns} - ${spacing(gap)}))`
25
          }),
26
          gap
27
        }}
28
      >
29
        {items.map((item, index) => (
30
          <Box key={keyExtractor(item, index)}>{renderItem(item, index)}</Box>
31
        ))}
32
      </Box>
33
      {renderFooter && renderFooter()}
34
    </>
35
  );
36
}