import { useContext, useState, useEffect } from "react"; import { MyContext } from "../data/contextapi"; import InfoIcon from "./InfoIcon"; export default function Door() { const { type, settype, setStep, width, setWidth, doorConfig, setDoorConfig, sidePannel, setSidePannel, sidePannelConfig, setSidePannelConfig, sidePannelSize, setSidePannelSize, stalenPart, setStalenPart, stalenType, setStalenType, open, inprogress, setInprogress, height, setHeight, holeWidth, setHoleWidth, } = useContext(MyContext); const [isMobile, setIsMobile] = useState(false); useEffect(() => { // Function to check the window width const checkScreenWidth = () => { setIsMobile(window.innerWidth <= 800); }; // Initial check checkScreenWidth(); // Add event listener to check screen width on resize window.addEventListener("resize", checkScreenWidth); // Clean up event listener on component unmount return () => { window.removeEventListener("resize", checkScreenWidth); }; }, []); useEffect(() => { if ( (doorConfig == "dubbele" && sidePannel === "beide") || sidePannel === "beide" ) { setSidePannelSize(width); } else { setSidePannelSize(width); } setWidth(90); setSidePannelSize(90); setHoleWidth(calculateHoleWidth()); }, [doorConfig, sidePannelConfig, sidePannel]); const handleHeightChange = (e) => { if (e.target.value > 285) { return } const value = e.target.value; if (!isNaN(value)) { setHeight(value); } }; const calculateHoleMinWidth = () => { if ( (doorConfig != "dubbele" && (sidePannel === "links" || sidePannel === "rechts")) || (doorConfig == "dubbele" && sidePannel == "geen") ) { return 120; } if (doorConfig != "dubbele" && sidePannel === "beide") { return 180; } if ( doorConfig == "dubbele" && (sidePannel == "links" || sidePannel == "rechts") ) { return 180; } if (doorConfig == "dubbele" && sidePannel == "beide") { return 240; } return 60; }; const calculateHoleMaxWidth = () => { if ( (doorConfig != "dubbele" && (sidePannel === "links" || sidePannel === "rechts")) || (doorConfig == "dubbele" && sidePannel == "geen") ) { return 240; } if (doorConfig != "dubbele" && sidePannel === "beide") { return 360; } if ( doorConfig == "dubbele" && (sidePannel == "links" || sidePannel == "rechts") ) { return 360; } if (doorConfig == "dubbele" && sidePannel == "beide") { return 400; } return 120; }; const calculateHoleWidth = () => { if ( (doorConfig != "dubbele" && (sidePannel === "links" || sidePannel === "rechts")) || (doorConfig == "dubbele" && sidePannel == "geen") ) { return 180; } if (doorConfig != "dubbele" && sidePannel === "beide") { return 270; } if ( doorConfig == "dubbele" && (sidePannel == "links" || sidePannel == "rechts") ) { return 270; } if (doorConfig == "dubbele" && sidePannel == "beide") { return 360; } return 90; }; const handleHoleWidth = (e) => { if (e.target.value > calculateHoleMaxWidth()) { return } setHoleWidth(e.target.value); setSidePannelSize(calculateSidePanelWidth(e.target.value, width)); if (sidePannel == "geen") { setWidth(doorConfig === "dubbele" ? e.target.value / 2 : e.target.value); } }; const calculateSidePanelWidth = (totalWidth, doorWidth) => { if ( doorConfig != "dubbele" && (sidePannel === "links" || sidePannel === "rechts") ) { return totalWidth - Number(doorWidth); } if (doorConfig == "dubbele" && sidePannel == "geen") { return 0; } if (doorConfig != "dubbele" && sidePannel === "beide") { return (totalWidth - Number(doorWidth)) / 2; } if ( doorConfig == "dubbele" && (sidePannel == "links" || sidePannel == "rechts") ) { return totalWidth - Number(doorWidth) * 2; } if (doorConfig == "dubbele" && sidePannel == "beide") { return (totalWidth - Number(doorWidth) * 2) / 2; } return 0; }; return ( <> {/*
Hoogte
Breedte