feat(Form): Implement GlFormInvalidFeedback component
Issue: #1255 (closed)
What does this MR do?
This MR add the GlFormInvalidFeedback component.
Storybook
![](/-/project/7071551/uploads/430478e4bdb6f811452303a8ef47d5ba/image.png)
Reason to add this component?
When an input is invalid, it will display the invalid feedback. However you may notice when you're using GlFormInputGroup
, the invalid feedback is not displayed.
GlFormInputGroup | Other form input (for comparison) |
---|---|
![]() |
![]() |
This is because the invalid block text is displayed using the general sibling selector ~
. Using the GlFormInputGroup
does NOT conform with this structure, so no feedback is displayed
The solution around this is using this helper component, as suggested in the Vue Bootstrap issue > https://github.com/bootstrap-vue/bootstrap-vue/issues/1251#issuecomment-340065341
Follow up Sibling Component
This component has a sibling component b-form-valid-feedback
, here's the follow-up issue to also add that into PJ > #1360 (closed)
Does this MR meet the acceptance criteria?
Conformity
-
Code review guidelines. -
GitLab UI's contributing guidlines. -
If it changes a Pajamas-compliant component's look & feel, the MR has been reviewed by a UX designer. -
If it changes GitLab UI's documentation guidelines, the MR has been reviewed by a Technical Writer. -
If the MR changes a component's API, integration MR(s) have been opened in the following projects to ensure that the @gitlab/ui
package can be upgraded quickly after the changes are released:-
GitLab: mr_url -
CustomersDot: mr_url -
Status Page: mr_url
-
-
Added the ~"component:*"
label(s) if applicable.
Security
If this MR contains changes to processing or storing of credentials or tokens, authorization and authentication methods and other items described in the security review guidelines:
-
Label as security and @ mention @gitlab-com/gl-security/appsec
-
Security reports checked/validated by a reviewer from the AppSec team
Accessibility
If this MR adds or modifies a component, take a few moments to review the following:
-
All actions and functionality can be done with a keyboard. -
Links, buttons, and controls have a visible focus state. -
All content is presented in text or with a text equivalent. For example, alt text for SVG, or aria-label
for icons that have meaning or perform actions. -
Changes in a component’s state are announced by a screen reader. For example, changing aria-expanded="false"
toaria-expanded="true"
when an accordion is expanded. -
Color combinations have sufficient contrast.
Closes #1255 (closed)