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