Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 1757 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |

import React from 'react';
import { Link } from 'react-router-dom';
import {
  IconButton,
  styled,
  Table,
  TableBody,
  TableCell,
  TableHead,
  TableRow,
  Typography,
  TableContainer,
  Paper
} from '@mui/material';
import Visibility from '@mui/icons-material/Visibility';

import { tableCellClasses } from '@mui/material';

const StyledTableCell = styled(TableCell)(() => ({
  borderColor: 'var(--font-color)',
  [`&.${tableCellClasses.head}`]: {
    fontWeight: '600'
  },
  [`&.${tableCellClasses.body}`]: {
    position: 'relative',
    borderRight: '1px solid',
    fontWeight: '500'
  }
}));

export default function ReportTable({ reports = [] }) {
  if (!reports || reports.length === 0) {
    return <Typography variant='h2'>No hay reportes disponibles</Typography>;
  }

  return (
    <TableContainer component={Paper} sx={{ border: '1px solid var(--font-color)' }}>
      <Table sx={{ minWidth: 650 }} aria-label='simple table'>
        <TableHead>
          <TableRow>
            <StyledTableCell>Email</StyledTableCell>
            <StyledTableCell align='right'>Nombre completo</StyledTableCell>
            <StyledTableCell align='right'>Estatus</StyledTableCell>
            <StyledTableCell align='right'>Motivo</StyledTableCell>
            <StyledTableCell align='right'>Tipo</StyledTableCell>
            <StyledTableCell align='right'>Fecha</StyledTableCell>
            <StyledTableCell align='center'>Acciones</StyledTableCell>
          </TableRow>
        </TableHead>
        <TableBody>
          {reports.map(
            ({ first_name, last_name, email, status, reason, type, date, actions }, key) => (
              <TableRow
                key={key}
                sx={{
                  '& td:last-child': { borderRight: 0 },
                  '&:last-child td, &:last-child th': { borderBottom: 0 }
                }}
              >
                <StyledTableCell component='th' scope='row'>
                  {email}
                </StyledTableCell>
                <StyledTableCell align='right'>{`${first_name} ${last_name}`}</StyledTableCell>
                <StyledTableCell align='right'>{status}</StyledTableCell>
                <StyledTableCell align='right'>{reason}</StyledTableCell>
                <StyledTableCell align='right'>{type}</StyledTableCell>
                <StyledTableCell align='right'>{date}</StyledTableCell>
                <StyledTableCell align='center'>
                  <IconButton component={Link} to={actions?.link_view}>
                    <Visibility />
                  </IconButton>
                </StyledTableCell>
              </TableRow>
            )
          )}
        </TableBody>
      </Table>
    </TableContainer>
  );
}