function CircularTrackCalculator() { const [direction, setDirection] = useState('opposite'); const [speed1, setSpeed1] = useState(''); const [speed2, setSpeed2] = useState(''); const [circumference, setCircumference] = useState(''); const [result, setResult] = useState(null); const calculate = () => { const s1 = parseFloat(speed1); const s2 = parseFloat(speed2); const circ = parseFloat(circumference); let calculated = {}; if (direction === 'opposite') { const relativeSpeed = s1 + s2; const timeToMeet = circ / relativeSpeed; const meetingsPerHour = 1 / timeToMeet; calculated = { relativeSpeed: relativeSpeed.toFixed(2), timeToMeet: timeToMeet.toFixed(2), timeInMinutes: (timeToMeet * 60).toFixed(2), meetingsPerHour: meetingsPerHour.toFixed(2), formula: 'Time to meet = Circumference / (Speed₁ + Speed₂)', calculation: `Relative Speed = ${s1} + ${s2} = ${relativeSpeed} km/h\nTime = ${circ} / ${relativeSpeed} = ${timeToMeet.toFixed(2)} hours` }; } else { const relativeSpeed = Math.abs(s1 - s2); const timeToMeet = circ / relativeSpeed; const meetingsPerHour = 1 / timeToMeet; calculated = { relativeSpeed: relativeSpeed.toFixed(2), timeToMeet: timeToMeet.toFixed(2), timeInMinutes: (timeToMeet * 60).toFixed(2), meetingsPerHour: meetingsPerHour.toFixed(2), formula: 'Time to meet = Circumference / |Speed₁ - Speed₂|', calculation: `Relative Speed = |${s1} - ${s2}| = ${relativeSpeed} km/h\nTime = ${circ} / ${relativeSpeed} = ${timeToMeet.toFixed(2)} hours` }; } setResult(calculated); }; return (