shoc-frontend/src/pages/Dashboard.js

109 lines
2.7 KiB
JavaScript
Raw Normal View History

2025-03-09 19:45:02 -05:00
// Dashboard.js
import React from 'react';
import { Bar, Line, Pie } from 'react-chartjs-2';
import { Chart as ChartJS, CategoryScale, LinearScale, BarElement, Title, Tooltip, Legend, ArcElement } from 'chart.js';
// Register the required components for Chart.js
ChartJS.register(CategoryScale, LinearScale, BarElement, Title, Tooltip, Legend, ArcElement);
const Dashboard = () => {
// Data for Bar Chart
const barData = {
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
datasets: [
{
label: 'Sales Data',
data: [65, 59, 80, 81, 56, 55, 40],
backgroundColor: 'rgba(75, 192, 192, 0.6)',
borderColor: 'rgba(75, 192, 192, 1)',
borderWidth: 1,
},
],
};
// Options for Bar Chart
const barOptions = {
responsive: true,
plugins: {
legend: {
position: 'top',
},
title: {
display: true,
text: 'Bar Chart Example',
},
},
};
// Data for Line Chart
const lineData = {
labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July'],
datasets: [
{
label: 'Revenue',
data: [0, 20, 50, 70, 100, 130, 160],
fill: false,
borderColor: 'rgba(255, 99, 132, 1)',
tension: 0.1,
},
],
};
// Options for Line Chart
const lineOptions = {
responsive: true,
plugins: {
legend: {
position: 'top',
},
title: {
display: true,
text: 'Line Chart Example',
},
},
};
// Data for Pie Chart
const pieData = {
labels: ['Red', 'Blue', 'Yellow'],
datasets: [
{
label: 'Colors',
data: [300, 50, 100],
backgroundColor: ['rgba(255, 99, 132, 0.6)', 'rgba(54, 162, 235, 0.6)', 'rgba(255, 206, 86, 0.6)'],
borderColor: ['rgba(255, 99, 132, 1)', 'rgba(54, 162, 235, 1)', 'rgba(255, 206, 86, 1)'],
borderWidth: 1,
},
],
};
// Options for Pie Chart
const pieOptions = {
responsive: true,
plugins: {
legend: {
position: 'top',
},
title: {
display: true,
text: 'Pie Chart Example',
},
},
};
return (
<div style={{ display: 'flex', flexDirection: 'column', alignItems: 'center', gap: '20px', padding: '20px' }}>
<div style={{ width: '600px', height: '400px' }}>
<Bar data={barData} options={barOptions} />
</div>
<div style={{ width: '600px', height: '400px' }}>
<Line data={lineData} options={lineOptions} />
</div>
<div style={{ width: '600px', height: '400px' }}>
<Pie data={pieData} options={pieOptions} />
</div>
</div>
);
};
export default Dashboard;