Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 1756 | Rev 3694 | 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,
  Paper,
  Table,
  TableBody,
  TableCell,
  TableContainer,
  TableHead,
  TableRow,
  Typography,
  styled,
  tableCellClasses
} from '@mui/material'
import { Visibility } from '@mui/icons-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>
  )
}