nolual's picture
Upload 55 files
0c20ea8
raw
history blame
3.36 kB
import { SiZenn } from "react-icons/si";
import { FaDirections } from "react-icons/fa";
import { BsSpeedometer2, BsSpeedometer, BsPinMapFill } from "react-icons/bs";
import { BiSolidCity, BiSolidRename } from "react-icons/bi";
import { FaMapLocationDot } from "react-icons/fa6";
import { Poi } from "../../redux/types/Poi";
import ParentSize from "@visx/responsive/lib/components/ParentSize";
import SimpleChart from "../../components/charts/singleChart/SimpleChart";
type InformationSectionProps = {
selectedPoi: Poi;
};
const InformationSection: React.FC<InformationSectionProps> = ({
selectedPoi,
}) => {
const streetSpecs = [
{
label: "Average speed",
icon: <BsSpeedometer2 style={{ fontSize: "25px" }} />,
value: selectedPoi
? selectedPoi?.data.section?.avg_speed.toString().slice(0, 4)
: "n/a" + "km/h",
},
{
label: "Commune",
icon: <BiSolidCity style={{ fontSize: "25px" }} />,
value: selectedPoi ? selectedPoi?.data.section?.commune : "n/a",
},
{
label: "Department",
icon: <FaMapLocationDot style={{ fontSize: "25px" }} />,
value: selectedPoi ? selectedPoi?.data.section?.department : "n/a",
},
{
label: "Length",
icon: <SiZenn style={{ fontSize: "25px" }} />,
value: selectedPoi ? selectedPoi?.data.section?.length : "n/a" + "m",
},
{
label: "Max speed",
icon: <BsSpeedometer style={{ fontSize: "25px" }} />,
value: selectedPoi
? selectedPoi?.data.section?.max_speed
: "n/a" + "km/h",
},
{
label: "Name",
icon: <BiSolidRename style={{ fontSize: "25px" }} />,
value: (
<p style={{ fontSize: "15px", marginTop: "5%" }}>
{selectedPoi ? selectedPoi?.data.section?.name : "n/a"}
</p>
),
},
{
label: "Directions",
icon: <FaDirections style={{ fontSize: "25px" }} />,
value: selectedPoi ? selectedPoi?.data.section?.nbr_direction : "n/a",
},
{
label: "Region",
icon: <BsPinMapFill style={{ fontSize: "25px" }} />,
value: selectedPoi ? selectedPoi?.data.section?.region : "n/a",
},
];
return (
<div className="blockSection">
<div className="blockInformation">
<div className="weekDistributionTitle">Section Information</div>
{streetSpecs.map((object, index) => (
<div className="blockInformationBackground">
<div className="blockInformationContent">
<p
style={{
width: "60%",
display: "flex",
flexDirection: "row",
alignItems: "center",
justifyContent: "space-around",
}}
>
{object.label}
{object.icon}
</p>
<p>{object.value}</p>
</div>
</div>
))}
</div>
<div className="blockSimpleChart">
<div className="weekDistributionTitle">Top 10 Trafic Origin</div>
<ParentSize>
{({ width, height }) => (
<SimpleChart
data={selectedPoi?.data.origin_top_10}
width={width}
height={height}
/>
)}
</ParentSize>
</div>
</div>
);
};
export default InformationSection;