fix: Margin input not saving - change onChange to onBlur

The margin input was making API calls on every keystroke, causing race
conditions and making it difficult to edit values (especially to 0).

Changed to:
- Use defaultValue + key pattern for uncontrolled input
- Save only onBlur (when user clicks away)
- Only call API if value actually changed

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
AutonetSellCar Deploy
2026-02-01 22:31:15 +09:00
parent 209c63e463
commit a65c4bbfcf

View File

@@ -2703,10 +2703,13 @@ export default function CarsAdminPage() {
<div className="flex items-center gap-2">
<input
type="number"
value={(selectedCar.margin_krw || 0) / 10000}
onChange={(e) => {
defaultValue={(selectedCar.margin_krw || 0) / 10000}
key={`margin_krw_${selectedCar.id}_${selectedCar.margin_krw}`}
onBlur={(e) => {
const marginValue = parseInt(e.target.value || '0') * 10000;
handleUpdateCar(selectedCar.id, { margin_krw: marginValue });
if (marginValue !== (selectedCar.margin_krw || 0)) {
handleUpdateCar(selectedCar.id, { margin_krw: marginValue });
}
}}
className="w-24 px-2 py-1 border border-gray-300 rounded text-right"
min="0"
@@ -2720,10 +2723,13 @@ export default function CarsAdminPage() {
<div className="flex items-center gap-2">
<input
type="number"
value={(selectedCar.margin_mn || 0) / 10000}
onChange={(e) => {
defaultValue={(selectedCar.margin_mn || 0) / 10000}
key={`margin_mn_${selectedCar.id}_${selectedCar.margin_mn}`}
onBlur={(e) => {
const marginValue = parseInt(e.target.value || '0') * 10000;
handleUpdateCar(selectedCar.id, { margin_mn: marginValue });
if (marginValue !== (selectedCar.margin_mn || 0)) {
handleUpdateCar(selectedCar.id, { margin_mn: marginValue });
}
}}
className="w-24 px-2 py-1 border border-gray-300 rounded text-right"
min="0"