diff --git a/frontend/src/Components/RoadConditions/ConditionsMap.tsx b/frontend/src/Components/RoadConditions/ConditionsMap.tsx index 9e4d6214..057a9895 100644 --- a/frontend/src/Components/RoadConditions/ConditionsMap.tsx +++ b/frontend/src/Components/RoadConditions/ConditionsMap.tsx @@ -1,6 +1,6 @@ import MapWrapper from '../Map/MapWrapper'; import { FC } from 'react'; -import '../../css/road_conditions.css'; +import '../../css/road_details.css'; import ForceMapUpdate from '../Map/ForceMapUpdate'; interface Props { diff --git a/frontend/src/Components/RoadDetails/MapArea.tsx b/frontend/src/Components/RoadDetails/MapArea.tsx index 0d435662..4fb54da0 100644 --- a/frontend/src/Components/RoadDetails/MapArea.tsx +++ b/frontend/src/Components/RoadDetails/MapArea.tsx @@ -1,15 +1,21 @@ import React from 'react'; import ImageGallery from './ImageGallery'; import MapWrapper from '../Map/MapWrapper'; +import ForceMapUpdate from '../Map/ForceMapUpdate'; +interface Props { + triggerUpdate: number; +} /** * The map area op the road details(road inspect) page */ -const MapArea: React.FC = () => { +const MapArea: React.FC = ({ triggerUpdate }) => { return (
- + + +
{/* Use the imageGallery component */} diff --git a/frontend/src/css/road_conditions.css b/frontend/src/css/road_conditions.css deleted file mode 100644 index 0f2ca40a..00000000 --- a/frontend/src/css/road_conditions.css +++ /dev/null @@ -1,13 +0,0 @@ -.road-conditions-page-wrapper { - height: calc(100vh - var(--navbar-height)); - display: flex; - flex-direction: column; -} - -.road-conditions-graph { - position: relative; - width: 100vw; - display: flex; - justify-content: center; - align-items: center; -} diff --git a/frontend/src/css/road_details.css b/frontend/src/css/road_details.css index 43eab5fa..246153b3 100644 --- a/frontend/src/css/road_details.css +++ b/frontend/src/css/road_details.css @@ -81,6 +81,14 @@ transition: 0.4s; } +.road-conditions-graph { + position: relative; + width: 100vw; + display: flex; + justify-content: center; + align-items: center; +} + /* Style to change the background color when switched on */ input:checked + .slider { background-color: #4caf50; diff --git a/frontend/src/pages/RoadConditions.tsx b/frontend/src/pages/RoadConditions.tsx index 3797b18b..99143b29 100644 --- a/frontend/src/pages/RoadConditions.tsx +++ b/frontend/src/pages/RoadConditions.tsx @@ -8,7 +8,7 @@ import { GraphProvider } from '../context/GraphContext'; import Split from 'react-split'; import '../css/split.css'; -import '../css/road_conditions.css'; +import '../css/road_details.css'; import { useEffect, useState } from 'react'; import { getConditionsWay } from '../queries/conditions'; diff --git a/frontend/src/pages/RoadDetails.tsx b/frontend/src/pages/RoadDetails.tsx index b6cf86ba..eb0bed8f 100644 --- a/frontend/src/pages/RoadDetails.tsx +++ b/frontend/src/pages/RoadDetails.tsx @@ -1,19 +1,101 @@ -import { useState } from 'react'; +import { useEffect, useState } from 'react'; import '../css/road_details.css'; // Import the CSS file import MapArea from '../Components/RoadDetails/MapArea'; import RoadImage from '../Components/RoadDetails/RoadImage'; import TopBar from '../Components/RoadDetails/TopBar'; +import Split from 'react-split'; +import ConditionsGraph from '../Components/RoadConditions/ConditionsGraph'; +import { ChartData } from 'chart.js'; +import { getConditionsWay } from '../queries/conditions'; +import '../css/split.css'; const RoadDetails = () => { const [showMapImageMode, setShowRoadImageMode] = useState(false); + const [wayData, setWayData] = + useState>(); + const [triggerUpdate, setTriggerUpdate] = useState(0); + const [splitElement, setSplitElement] = useState( + { + setTriggerUpdate((prev) => prev + 1); + }} + // dragInterval={50} + > + {showMapImageMode ? ( + + ) : ( + + )} + + , + ); + + useEffect(() => { + console.log('showMapImageMode has been changed'); + setSplitElement( + { + setTriggerUpdate((prev) => prev + 1); + }} + > + {showMapImageMode ? ( + + ) : ( + + )} + + , + ); + }, [showMapImageMode, wayData, triggerUpdate]); + + useEffect(() => { + getConditionsWay('0cba0666-d75e-45bd-9da6-62ef0fe9544c', (wc) => { + console.log(wc); + setWayData({ + labels: wc.map((p) => p.way_dist * 100), + datasets: [ + { + //@ts-ignore + type: 'line' as const, + label: 'KPI', + borderColor: 'rgb(255, 99, 132)', + borderWidth: 2, + fill: false, + tension: 0.2, + data: wc.map((p) => p.KPI), + yAxisID: 'KPI', + }, + { + //@ts-ignore + type: 'line' as const, + label: 'DI', + borderColor: 'rgb(120, 245, 23)', + borderWidth: 2, + fill: false, + tension: 0.2, + data: wc.map((p) => p.DI), + yAxisID: 'DI', + }, + ], + }); + }); + }, []); return (
- {showMapImageMode ? : } - {/* TODO: putting plots here */} -
{/* Content for the plot area */}
+ {splitElement}
); };