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">
|
||||
<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"
|
||||
|
||||
Reference in New Issue
Block a user