From a65c4bbfcfbf0a3bae12f3548808aa380e0b1e02 Mon Sep 17 00:00:00 2001 From: AutonetSellCar Deploy Date: Sun, 1 Feb 2026 22:31:15 +0900 Subject: [PATCH] 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 --- frontend/src/app/admin/cars/page.tsx | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/admin/cars/page.tsx b/frontend/src/app/admin/cars/page.tsx index ea5a9a6..a0be49f 100644 --- a/frontend/src/app/admin/cars/page.tsx +++ b/frontend/src/app/admin/cars/page.tsx @@ -2703,10 +2703,13 @@ export default function CarsAdminPage() {
{ + 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() {
{ + 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"