function RelativeSpeedCalculator() { const [direction, setDirection] = useState('opposite'); const [speed1, setSpeed1] = useState(''); const [speed2, setSpeed2] = useState(''); const [distance, setDistance] = useState(''); const [result, setResult] = useState(null); const calculate = () => { const s1 = parseFloat(speed1); const s2 = parseFloat(speed2); const d = parseFloat(distance); let calculated = {}; if (direction === 'opposite') { const relativeSpeed = s1 + s2; const timeToMeet = d / relativeSpeed; calculated = { relativeSpeed: relativeSpeed.toFixed(2), timeToMeet: timeToMeet.toFixed(2), timeInMinutes: (timeToMeet * 60).toFixed(2), formula: 'Relative Speed = Speed₁ + Speed₂ (opposite direction)', calculation: `Relative Speed = ${s1} + ${s2} = ${relativeSpeed} km/h\nTime to meet = ${d} / ${relativeSpeed} = ${timeToMeet.toFixed(2)} hours`, type: 'Speed of Approach' }; } else { const relativeSpeed = Math.abs(s1 - s2); const timeToMeet = d / relativeSpeed; calculated = { relativeSpeed: relativeSpeed.toFixed(2), timeToMeet: timeToMeet.toFixed(2), timeInMinutes: (timeToMeet * 60).toFixed(2), formula: 'Relative Speed = |Speed₁ - Speed₂| (same direction)', calculation: `Relative Speed = |${s1} - ${s2}| = ${relativeSpeed} km/h\nTime to meet = ${d} / ${relativeSpeed} = ${timeToMeet.toFixed(2)} hours`, type: 'Speed of Separation' }; } setResult(calculated); }; return (