Update various improvements and minor changes

This commit is contained in:
2026-02-02 17:35:11 +00:00
parent 02b1209c2d
commit f4260061f5
10 changed files with 308 additions and 181 deletions

View File

@@ -54,6 +54,54 @@ export const useAppState = () => {
}
}
// Validate numeric fields and replace empty/invalid values with defaults
const validateNumericField = (value: any, defaultValue: any): any => {
if (value === '' || value === null || value === undefined || isNaN(Number(value))) {
return defaultValue;
}
return value;
};
// Validate basic pkParams
if (migratedPkParams.basic) {
migratedPkParams.basic.eliminationHalfLife = validateNumericField(
migratedPkParams.basic.eliminationHalfLife,
defaults.pkParams.basic.eliminationHalfLife
);
migratedPkParams.basic.bodyWeight = validateNumericField(
migratedPkParams.basic.bodyWeight,
defaults.pkParams.basic.bodyWeight
);
}
// Validate advanced pkParams
if (migratedPkParams.advanced) {
migratedPkParams.advanced.conversionEfficiency = validateNumericField(
migratedPkParams.advanced.conversionEfficiency,
defaults.pkParams.advanced.conversionEfficiency
);
migratedPkParams.advanced.bioavailability = validateNumericField(
migratedPkParams.advanced.bioavailability,
defaults.pkParams.advanced.bioavailability
);
migratedPkParams.advanced.customVolumeOfDistribution = validateNumericField(
migratedPkParams.advanced.customVolumeOfDistribution,
defaults.pkParams.advanced.customVolumeOfDistribution
);
migratedPkParams.advanced.absorptionDelay = validateNumericField(
migratedPkParams.advanced.absorptionDelay,
defaults.pkParams.advanced.absorptionDelay
);
migratedPkParams.advanced.absorptionRateConstant = validateNumericField(
migratedPkParams.advanced.absorptionRateConstant,
defaults.pkParams.advanced.absorptionRateConstant
);
migratedPkParams.advanced.mealDelayFactor = validateNumericField(
migratedPkParams.advanced.mealDelayFactor,
defaults.pkParams.advanced.mealDelayFactor
);
}
setAppState({
...defaults,
...parsedState,