Commit 007f6f27 authored by Illya Klymov's avatar Illya Klymov

Improve error state reporting

- make it full width
- properly report it with red border
parent 96db744c
...@@ -37,11 +37,17 @@ export default { ...@@ -37,11 +37,17 @@ export default {
this.group.progress?.message || getInvalidNameValidationMessage(this.group.importTarget) this.group.progress?.message || getInvalidNameValidationMessage(this.group.importTarget)
); );
}, },
validNameState() {
// bootstrap-vue requires null for "indifferent" state, if we return true
// this will highlight field in green like "passed validation"
return this.group.flags.isInvalid && this.group.flags.isAvailableForImport ? false : null;
},
}, },
}; };
</script> </script>
<template> <template>
<div>
<div class="gl-display-flex gl-align-items-stretch"> <div class="gl-display-flex gl-align-items-stretch">
<import-group-dropdown <import-group-dropdown
#default="{ namespaces }" #default="{ namespaces }"
...@@ -84,23 +90,26 @@ export default { ...@@ -84,23 +90,26 @@ export default {
<gl-form-input <gl-form-input
class="gl-rounded-top-left-none gl-rounded-bottom-left-none" class="gl-rounded-top-left-none gl-rounded-bottom-left-none"
:class="{ :class="{
'gl-inset-border-1-gray-200!': group.flags.isAvailableForImport, 'gl-inset-border-1-gray-200!':
'gl-inset-border-1-gray-100!': !group.flags.isAvailableForImport, group.flags.isAvailableForImport && !group.flags.isInvalid,
'is-invalid': group.flags.isInvalid && group.flags.isAvailableForImport, 'gl-inset-border-1-gray-100!':
!group.flags.isAvailableForImport && !group.flags.isInvalid,
}" }"
debounce="500" debounce="500"
:disabled="!group.flags.isAvailableForImport" :disabled="!group.flags.isAvailableForImport"
:value="group.importTarget.newName" :value="group.importTarget.newName"
:aria-label="__('New name')" :aria-label="__('New name')"
:state="validNameState"
@input="$emit('update-new-name', $event)" @input="$emit('update-new-name', $event)"
/> />
<p </div>
</div>
<div
v-if="group.flags.isAvailableForImport && (group.flags.isInvalid || validationMessage)" v-if="group.flags.isAvailableForImport && (group.flags.isInvalid || validationMessage)"
class="gl-text-red-500 gl-m-0 gl-mt-2" class="gl-text-red-500 gl-m-0 gl-mt-2"
role="alert" role="alert"
> >
{{ validationMessage }} {{ validationMessage }}
</p>
</div> </div>
</div> </div>
</template> </template>
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment