[frontend]: Add train lateness pie chart

This commit is contained in:
2025-03-25 10:43:22 +00:00
parent 9a91d5cd89
commit 4f4ed2bca2

View File

@ -7,6 +7,7 @@ const Statistics = () => {
const [transientTypes, setTransientTypes] = useState([]); const [transientTypes, setTransientTypes] = useState([]);
const [trainTypes, setTrainTypes] = useState([]); const [trainTypes, setTrainTypes] = useState([]);
const [trainStatuses, setTrainStatuses] = useState([]); const [trainStatuses, setTrainStatuses] = useState([]);
const [trainLatenesses, setTrainLatenesses] = useState([]);
const [coordinates, setCoordinates] = useState([]); const [coordinates, setCoordinates] = useState([]);
const [loading, setLoading] = useState(true); const [loading, setLoading] = useState(true);
const [heatmapLoading, setHeatmapLoading] = useState(true); const [heatmapLoading, setHeatmapLoading] = useState(true);
@ -23,6 +24,7 @@ const Statistics = () => {
let transientTypes = []; let transientTypes = [];
let trainTypes = []; let trainTypes = [];
let trainStatuses = []; let trainStatuses = [];
let trainLatenesses = [];
for (const item of transientData) { for (const item of transientData) {
transientTypes.push(item.objectType.replace(/([a-z])([A-Z])/g, '$1 $2').replace(/([A-Z])([A-Z][a-z])/g, '$1 $2')); transientTypes.push(item.objectType.replace(/([a-z])([A-Z])/g, '$1 $2').replace(/([A-Z])([A-Z][a-z])/g, '$1 $2'));
@ -30,12 +32,14 @@ const Statistics = () => {
if (item.objectType === "IrishRailTrain") { if (item.objectType === "IrishRailTrain") {
trainTypes.push(item.trainTypeFull); trainTypes.push(item.trainTypeFull);
trainStatuses.push(item.trainStatusFull); trainStatuses.push(item.trainStatusFull);
trainLatenesses.push(item.trainPunctualityStatus);
} }
} }
setTransientTypes(transientTypes); setTransientTypes(transientTypes);
setTrainTypes(trainTypes); setTrainTypes(trainTypes);
setTrainStatuses(trainStatuses); setTrainStatuses(trainStatuses);
setTrainLatenesses(trainLatenesses);
} catch (err) { } catch (err) {
setError("Failed to fetch transient data"); setError("Failed to fetch transient data");
} finally { } finally {
@ -114,6 +118,12 @@ const Statistics = () => {
/> />
</div> </div>
<div className="bg-white shadow-md rounded-lg p-4">
<ObjectTypeProportionPieChart
label={`Live Train Latenesses`}
dataList={trainLatenesses}
/>
</div>
</div> </div>
</div> </div>
); );