mirror of
https://github.com/Sea-Haven-Industries/shoc-frontend-new.git
synced 2026-09-30 05:43:12 +00:00
Fix controlled input warning on all form pages
- Merge API response into form state instead of replacing it - Null values from the API now fall back to the form's default values - Prevents React controlled-to-uncontrolled input warning
This commit is contained in:
parent
9ae7c9b262
commit
fad2b7d661
6 changed files with 42 additions and 6 deletions
|
|
@ -28,7 +28,13 @@ export default function PmScheduleFormPage() {
|
||||||
try {
|
try {
|
||||||
const pm = await getPMScheduleById(id);
|
const pm = await getPMScheduleById(id);
|
||||||
if (pm) {
|
if (pm) {
|
||||||
setFormData(pm);
|
setFormData(prev => {
|
||||||
|
const merged = { ...prev };
|
||||||
|
for (const key of Object.keys(merged)) {
|
||||||
|
if (pm[key] != null) merged[key] = pm[key];
|
||||||
|
}
|
||||||
|
return merged;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error("Failed to load PM schedule", err);
|
console.error("Failed to load PM schedule", err);
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,13 @@ export default function EventFormPage() {
|
||||||
try {
|
try {
|
||||||
const event = await getEventById(id);
|
const event = await getEventById(id);
|
||||||
if (event) {
|
if (event) {
|
||||||
setFormData(event);
|
setFormData(prev => {
|
||||||
|
const merged = { ...prev };
|
||||||
|
for (const key of Object.keys(merged)) {
|
||||||
|
if (event[key] != null) merged[key] = event[key];
|
||||||
|
}
|
||||||
|
return merged;
|
||||||
|
});
|
||||||
setTitleCounter(100 - (event.title?.length || 0));
|
setTitleCounter(100 - (event.title?.length || 0));
|
||||||
setLocationCounter(150 - (event.location?.length || 0));
|
setLocationCounter(150 - (event.location?.length || 0));
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,13 @@ export default function EmployeeFormPage() {
|
||||||
try {
|
try {
|
||||||
const employee = await getEmployeeById(id);
|
const employee = await getEmployeeById(id);
|
||||||
if (employee) {
|
if (employee) {
|
||||||
setFormData(employee);
|
setFormData(prev => {
|
||||||
|
const merged = { ...prev };
|
||||||
|
for (const key of Object.keys(merged)) {
|
||||||
|
if (employee[key] != null) merged[key] = employee[key];
|
||||||
|
}
|
||||||
|
return merged;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error("Failed to load employee", err);
|
console.error("Failed to load employee", err);
|
||||||
|
|
|
||||||
|
|
@ -27,7 +27,13 @@ export default function FollowUpFormPage() {
|
||||||
try {
|
try {
|
||||||
const followUp = await getFollowUpById(id);
|
const followUp = await getFollowUpById(id);
|
||||||
if (followUp) {
|
if (followUp) {
|
||||||
setFormData(followUp);
|
setFormData(prev => {
|
||||||
|
const merged = { ...prev };
|
||||||
|
for (const key of Object.keys(merged)) {
|
||||||
|
if (followUp[key] != null) merged[key] = followUp[key];
|
||||||
|
}
|
||||||
|
return merged;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error("Failed to load follow up", err);
|
console.error("Failed to load follow up", err);
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,13 @@ export default function LocationFormPage() {
|
||||||
try {
|
try {
|
||||||
const location = await getLocationById(id);
|
const location = await getLocationById(id);
|
||||||
if (location) {
|
if (location) {
|
||||||
setFormData(location);
|
setFormData(prev => {
|
||||||
|
const merged = { ...prev };
|
||||||
|
for (const key of Object.keys(merged)) {
|
||||||
|
if (location[key] != null) merged[key] = location[key];
|
||||||
|
}
|
||||||
|
return merged;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error("Failed to load location", err);
|
console.error("Failed to load location", err);
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,13 @@ export default function WorkOrderFormPage() {
|
||||||
try {
|
try {
|
||||||
const wo = await getWorkOrderById(id);
|
const wo = await getWorkOrderById(id);
|
||||||
if (wo) {
|
if (wo) {
|
||||||
setFormData(wo);
|
setFormData(prev => {
|
||||||
|
const merged = { ...prev };
|
||||||
|
for (const key of Object.keys(merged)) {
|
||||||
|
if (wo[key] != null) merged[key] = wo[key];
|
||||||
|
}
|
||||||
|
return merged;
|
||||||
|
});
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
console.error("Failed to load work order", err);
|
console.error("Failed to load work order", err);
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue