fix: prevent negative numeric inputs in rental forms by enforcing positive constraints and sanitizing user entries
This commit is contained in:
@@ -609,8 +609,9 @@ export default function RentalDetailPage() {
|
||||
<label className="text-sm text-slate-600">Due Amount (৳)</label>
|
||||
<input
|
||||
type="number"
|
||||
min={0}
|
||||
value={dueAmount}
|
||||
onChange={(e) => setDueAmount(Number(e.target.value))}
|
||||
onChange={(e) => setDueAmount(Math.max(0, Number(e.target.value)))}
|
||||
className="w-full px-3 py-2 border border-slate-200 rounded-lg text-sm mt-1"
|
||||
placeholder="Enter amount..."
|
||||
/>
|
||||
|
||||
@@ -492,19 +492,27 @@ const generateInvoice = () => {
|
||||
<div>
|
||||
<label className="text-sm text-slate-600">Daily Rate (৳)</label>
|
||||
<input
|
||||
type="number"
|
||||
value={newRental.dailyRate}
|
||||
onChange={(e) => setNewRental({ ...newRental, dailyRate: Number(e.target.value) })}
|
||||
type="text"
|
||||
value={newRental.dailyRate || ''}
|
||||
onChange={(e) => {
|
||||
const val = e.target.value.replace(/[^0-9]/g, '');
|
||||
setNewRental({ ...newRental, dailyRate: val ? Number(val) : 0 });
|
||||
}}
|
||||
className="w-full px-3 py-2 border border-slate-200 rounded-lg text-sm mt-1"
|
||||
placeholder="150"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<label className="text-sm text-slate-600">Deposit (৳)</label>
|
||||
<input
|
||||
type="number"
|
||||
value={newRental.deposit}
|
||||
onChange={(e) => setNewRental({ ...newRental, deposit: Number(e.target.value) })}
|
||||
type="text"
|
||||
value={newRental.deposit || ''}
|
||||
onChange={(e) => {
|
||||
const val = e.target.value.replace(/[^0-9]/g, '');
|
||||
setNewRental({ ...newRental, deposit: val ? Number(val) : 0 });
|
||||
}}
|
||||
className="w-full px-3 py-2 border border-slate-200 rounded-lg text-sm mt-1"
|
||||
placeholder="0"
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
|
||||
Reference in New Issue
Block a user