Since the new SearchInput widget gets decomposed by PatternFly into a
<div> and the actual <input> element we're looking for is nested rather
deeply in this hierarchy, we need to use the locator to allow Playwright
to descend into that input.
As a small simplification and also to make the UX more consistent, let's
use a SearchInput widget over the custom InputGroup structure.
The only aspect lost in the process is the `validation` property that
doesn't exist in the SearchInput widget. It however only affects the CSS
styling of the searchbox and renders the 'error' state when there's only
a single character in the box. This may not even be desirable, given
that it's not really an error and that we show a note right below the
input box about this anyway.
This means the search boxes will also be consistent between the
repository and package search pages.
Fixes#3133
Currently, when a search term is entered and then reduced to a single
character in the Wizard's packages step, the previous results are still
shown.
What is expected is that the empty state hinting at the search term
being too short would be shown.
The condition in bodyContent was wrong, because it assumed that the list
of results would be 0 when in fact it wasn't being cleared.
Fixes#3139
This uses the `hasPassword` value to render a password placeholder in edit mode.
The placeholder will indicate to the user that a password is present, but will not allow to show the password.
- addressed AI comments
- fix tab indexing
- added username to the title of Remove user modal
- ensured "Invalid password" is not in the errors object before a password is filled in
- removing a user with empty user, password and ssh key fields does not prompt "Remove user" modal
- check for duplicate username
- focus on new user tab
- remove redundant tabIndex
This adds support for multiple users in the Wizard. The users are rendered in tabs and can be both added and removed. When clicking on remove button, modal pops up to inform user that the changes cannot be undone.
Neither password nor SSH keys are further required, making it possible to create a user with just a username.
Removing/adding some periods for the sake of consistency.
I believe the description of the step should end with a period, helped texts and options should not (at least that's the prevailing pattern in the Wizard as of now).
The Intercom team has some ideas about helping new users determine which
security profile is right for them. Tracking differentiates between
"vanilla" OpenSCAP and Compliance so that any messages from Intercom can
be targeted.
Adds a Hostname customization test that creates a BP, edits BP, exports and imports it back and verifies the BP content.
This test also servers as a template for other customization tests. Includes a refactor of existing helper functions.
resourceGroup is used in useEffect, so if assigned a new array to it
every time this function is called, it would cause the useEffect to run
every time, leading to an infinite loop. This is because useEffect uses
Object.is to determine if the value has changed, and [] creates a new
array every time. Thus, we use a constant empty array to avoid this
issue.
Alternatively JSON.stringify(resourceGroup), or a deep comparison could
be used as a useEffect dependency, but that feels like just a waste
of resources.