diff --git a/src/components/LoanRepayment.js b/src/components/LoanRepayment.js index a763b45..dae1f23 100644 --- a/src/components/LoanRepayment.js +++ b/src/components/LoanRepayment.js @@ -7,7 +7,7 @@ function LoanRepayment({ setResults, setLoading, }) { - const [selectedSalary, setSelectedSalary] = useState('10th Percentile'); + const [expectedSalary, setExpectedSalary] = useState(''); const [tuitionType, setTuitionType] = useState('inState'); // Tuition type: inState or outOfState const [interestRate, setInterestRate] = useState(5.5); // Interest rate const [loanTerm, setLoanTerm] = useState(10); // Loan term in years @@ -20,22 +20,32 @@ function LoanRepayment({ setError('School data is missing. Loan calculations cannot proceed.'); return false; } - if (interestRate <= 0) { - setError('Interest rate must be greater than 0.'); + + if (isNaN(interestRate) || interestRate <= 0) { + setError('Interest rate must be a valid number greater than 0.'); return false; } - if (loanTerm <= 0) { - setError('Loan term must be greater than 0.'); + + if (isNaN(loanTerm) || loanTerm <= 0) { + setError('Loan term must be a valid number greater than 0.'); return false; } - if (extraPayment < 0) { + + if (isNaN(extraPayment) || extraPayment < 0) { setError('Extra monthly payment cannot be negative.'); return false; } - if (currentSalary < 0) { - setError('Current salary cannot be negative.'); + + if (isNaN(currentSalary) || currentSalary < 0) { + setError('Current salary must be a valid number and cannot be negative.'); return false; } + + if (isNaN(expectedSalary) || expectedSalary < 0) { + setError('Expected salary must be a valid number and cannot be negative.'); + return false; + } + setError(null); return true; }; @@ -75,7 +85,7 @@ function LoanRepayment({ const totalLoanCost = extraMonthlyPayment * monthsWithExtra; - let salary = Number(salaryData.find((point) => point.percentile === selectedSalary)?.value || 0); + let salary = Number(expectedSalary) || 0; let netGain = 'N/A'; let monthlySalary = 'N/A'; @@ -113,28 +123,44 @@ function LoanRepayment({
- setInterestRate(e.target.value)} /> + setInterestRate(e.target.value)} + placeholder="Enter the interest rate" + />
- setLoanTerm(e.target.value)} /> + setLoanTerm(e.target.value)} + placeholder="Enter the length of the loan repayment period" + />
- setExtraPayment(e.target.value)} /> + setExtraPayment(e.target.value)} + placeholder="Enter any additional monthly payment" /> + />
- setCurrentSalary(e.target.value)} /> + setCurrentSalary(e.target.value)} + placeholder="Enter your current salary" />
- - -
+ + setExpectedSalary(e.target.value)} + placeholder="Enter expected salary" + /> +