Components
Graficas
Personas.tsx

Componente gráfica de Personas

Este componente se encarga de mostrar las gráficas de la asistencia que tiene una persona a los eventos que se le han invitado.

Chart.js

Chart.js es una libreria que nos permite crear gráficas a partir de datos dinámicos que nosotros le pasemos.

Props

Los props que se le pasan a este componente vienen al darle click a una tabla que se encuentra en la vista de la gráfica, a la que se accede desde el panel de administrador.

Personas.tsx
import React from 'react';
import { useMantineTheme } from '@mantine/core';
import { Chart as ChartJS, ArcElement, Tooltip, Legend } from 'chart.js';
import { Doughnut } from 'react-chartjs-2';
 
ChartJS.register(ArcElement, Tooltip, Legend);
 
interface Props {
  personasAsistieron: number;
  personasNoAsistieron: number;
}
export function Eventos(props: Props) {
  const theme = useMantineTheme();
 
  const options = {
    indexAxis: 'y' as const,
    elements: {
      bar: {
        borderWidth: 2,
      },
    },
    responsive: true,
    plugins: {
      legend: {
        position: 'right' as const,
      },
      title: {
        display: true,
        text: 'Chart.js Horizontal Bar Chart',
      },
    },
  };
 
  const labels = ['No Asistieron', 'Asistieron'];
  const data = {
    labels,
    datasets: [
      {
        label: 'Personas',
        data: [props.personasNoAsistieron, props.personasAsistieron],
        borderColor: theme.colorScheme === 'dark' ? theme.colors.dark[8] : theme.colors.gray[2],
        backgroundColor: [
          '#22d3ee',
          '#84cc16'
        ],
      },
    ],
  };
 
  return <Doughnut options={options} data={data} />;
}
 
export { Eventos as default };
 

Referencias

Libreria Chart.js (opens in a new tab)

Video de ejemplo (opens in a new tab)

Last updated on January 10, 2023