import React, { useState, useCallback, useRef } from "react"; import { useLocalDb } from "../../DbContext"; import { ProcessedDataBucketContext, useProcessedDataBucket } from "../../ProcessedDataBucketContext"; import { DataGrid } from "@mui/x-data-grid"; import { Box } from "@mui/material"; import AnalyticsPanel from "./AnalyticsPanel"; //https://ag-grid.com/react-data-grid/ import { AgGridReact } from "ag-grid-react"; import "ag-grid-community/dist/styles/ag-grid.css"; import "ag-grid-community/dist/styles/ag-theme-alpine-dark.css"; const DashboardPage = () => { // { /* {(pdbCtx) => { */ } // const pdb = useProcessedDataBucket().processedDataBucket; // const makePieChartData = (pdb, team_num) => { // // console.log(team_num); // // console.log(pdb.teamData); // return { // labels: ["None", "Low", "Mid", "High", "Transversal"], // datasets: [ // { // label: "Climbs", // data: pdb.teamData[4388].climb_counts, // backgroundColor: ["rgba(230,20,20)", "rgba(230,150,20)", "rgba(160,220,20)", "rgba(20,230,70)", "rgba(20,200,180)"], // }, // ], // }; // }; let { processedDataBucket, setProcessedDataBucket } = useProcessedDataBucket(); let rowData = []; if (processedDataBucket != null) { //turns the values of the key value pairs in the list into an array let team_data_array = Object.values(processedDataBucket.teamData); // let team_data_array = Array.from(processedDataBucket.teamData); const roundPlaces = (n, d) => Math.round(n * Math.pow(10, d)) / Math.pow(10, d); // team_data_array.forEach((value, index, array) => { for (const property in processedDataBucket.teamData) { let value = processedDataBucket.teamData[property]; rowData.push({ id: value.team_number, average_auto_points: roundPlaces(value.average_auto_points, 2), average_teleop_hub_points: roundPlaces(value.average_teleop_hub_points, 2), average_climb_points: roundPlaces(value.average_climb_points, 2), average_total_match_points: roundPlaces(value.average_total_match_points, 2), matches_played: value.matches_played, num_disables: value.num_disables, num_flips: value.num_flips, fouls: value.fouls, fouls_tech: value.fouls_tech, red_cards: value.red_cards, yellow_cards: value.yellow_cards, }); } } const [columnDefs] = useState([ { field: "id", headerName: "Team", width: 100, checkboxSelection: true, pinned: "left", sortable: true }, { field: "average_total_match_points", headerName: "Avg Total Pts", width: 120, sortable: true }, { field: "average_auto_points", headerName: "Avg Auto Pts", width: 120, sortable: true }, { field: "average_teleop_hub_points", headerName: "Avg Teleop Hub Pts", width: 160, sortable: true }, { field: "average_climb_points", headerName: "Avg Climb Pts", width: 120, sortable: true }, { field: "yellow_cards", headerName: "Yellow Cards", width: 120, sortable: true }, { field: "red_cards", headerName: "Red Cards", width: 100, sortable: true }, { field: "fouls", headerName: "Fouls", width: 70, sortable: true }, { field: "fouls_tech", headerName: "Tech Fouls", width: 100, sortable: true }, { field: "num_disables", headerName: "Disables", width: 100, sortable: true }, { field: "num_flips", headerName: "Flips", width: 80, sortable: true }, { field: "matches_played", headerName: "Matches", width: 100, sortable: true }, { field: "", headerName: "", width: 150, sortable: true }, ]); const [selectedTeams, setSelectedTeams] = useState([]); const gridRef = useRef(); const onSelectionChanged = useCallback(() => { let selectedRows = gridRef.current.api.getSelectedRows(); // var selectedRowsString = ""; // var maxToShow = 5; let selectedTeams = []; selectedRows.forEach(function (selectedRow, index) { selectedTeams.push(selectedRow.id); }); // if (selectedRows.length > maxToShow) { // var othersCount = selectedRows.length - maxToShow; // selectedRowsString += " and " + othersCount + " other" + (othersCount !== 1 ? "s" : ""); // } // document.querySelector("#selectedRows").innerHTML = selectedRowsString; setSelectedTeams(selectedTeams); }, [selectedTeams]); // const { processedDataBucket, setProcessedDataBucket } = pdbCtx; // console.log(pdbCtx); //format data for the data grid // }); return (
{/* */} {/*

{JSON.stringify(selectedTeams)}

*/}
); //}} //
}; export default DashboardPage;