deal with redux before validation

This commit is contained in:
Alex Holliday
2025-06-18 09:43:41 +08:00
parent 791c62b583
commit fc2676c33e
+17 -14
View File
@@ -91,30 +91,19 @@ const Settings = () => {
settings: { ...settingsData.settings, [name]: newValue ?? value },
};
// Validate
const { error } = settingsValidation.validate(newSettingsData.settings, {
abortEarly: false,
});
if (!error || error.details.length === 0) {
setErrors({});
} else {
const newErrors = {};
error.details.forEach((err) => {
newErrors[err.path[0]] = err.message;
});
setErrors(newErrors);
}
if (name === "timezone") {
dispatch(setTimezone({ timezone: value }));
return;
}
if (name === "mode") {
dispatch(setMode(value));
return;
}
if (name === "language") {
dispatch(setLanguage(value));
return;
}
if (name === "deleteStats") {
@@ -132,6 +121,20 @@ const Settings = () => {
return;
}
// Validate
const { error } = settingsValidation.validate(newSettingsData.settings, {
abortEarly: false,
});
if (!error || error.details.length === 0) {
setErrors({});
} else {
const newErrors = {};
error.details.forEach((err) => {
newErrors[err.path[0]] = err.message;
});
setErrors(newErrors);
}
setSettingsData(newSettingsData);
};