Wizard: do not show validation error on parent module
This commit is contained in:
+3
-1
@@ -140,7 +140,9 @@ private class CellRenderer(private val context: Context, renderErrors: Boolean)
|
||||
if (renderErrors) {
|
||||
if (setting is Module) context.read {
|
||||
val validationResult = setting.validator.validate(this, setting)
|
||||
setError(validationResult as? ValidationResult.ValidationError)
|
||||
val error = validationResult.safeAs<ValidationResult.ValidationError>()
|
||||
?.takeIf { it.target === setting }
|
||||
setError(error)
|
||||
} else {
|
||||
setError(null)
|
||||
}
|
||||
|
||||
+4
@@ -78,6 +78,10 @@ sealed class ValidationResult {
|
||||
}
|
||||
}
|
||||
|
||||
fun <V> SettingValidator<V>.withTarget(target: Any) = SettingValidator<V> { value ->
|
||||
this.validate(value).withTarget(target)
|
||||
}
|
||||
|
||||
infix fun ValidationResult.isSpecificError(error: ValidationResult.ValidationError) =
|
||||
this is ValidationResult.ValidationError && messages.firstOrNull() == error.messages.firstOrNull()
|
||||
|
||||
|
||||
+2
-2
@@ -44,9 +44,9 @@ class Module(
|
||||
val kind: ModuleKind
|
||||
get() = configurator.moduleKind
|
||||
|
||||
override val validator = moduleNameValidator and
|
||||
override val validator = (moduleNameValidator and
|
||||
moduleConfiguratorValidator and
|
||||
moduleTemplateValidator and
|
||||
moduleTemplateValidator).withTarget(this) and
|
||||
subModulesValidator
|
||||
|
||||
var subModules = subModules
|
||||
|
||||
Reference in New Issue
Block a user