A setState action was occuring in during render in the customStatusNavItem
component of the CreateImageWizard. We just needed to wrap this setState
call in a useEffect hook. I also renamed the component to CustomStatusNavItem
for React component naming conventions.
See: https://reactjs.org/link/setstate-in-render
Recently the wizard has started rendering such that its vertical height
matches the height of its body – and therefore only occupies some
fraction of the page’s vertical space for many steps. The desired
behavior is for its footer to be fixed at the bottom of the viewport.
Specifying the page section type prop as ‘wizard’ resolves the issue.
This is the pattern used in the Patternfly documentation for in-page
wizards. See here:
https://www.patternfly.org/components/wizard/react-demos#in-page
Using CSS to adjust Patternfly component rendering is an antipattern.
More custom CSS means more time spent troubleshooting rendering issues.
Custom CSS related to rendering of the wizard has been removed.
There is still an annoying issue. The body of the wizard is not
scrollable and will overflow. This is counter to the Patternfly
examples. There doesn’t seem to be any CSS in Image Builder that would
cause this to occur. Perhaps the problem is somehow inherited from
Insights Chrome? In any case, this will require further investigation.
Refactor the OpenSCAP on-premise availability check. Add the check to
the component so we run the check everytime the step is loaded. The
benefits to this is that if the user installs the packages, they won't
need to reload the page to use the OpenSCAP step. The downside is that
the check is not very quick, so a spinner was added just to indicate
that the check is running.
This commit adds password validation to the User step:
- Moved password validation logic to a separate `checkPasswordValidity` function, returning detailed results (strength and validation state).
- Simplified validation in `PasswordValidatedInput` by using `checkPasswordValidity` results directly.
- Added dynamic password strength indicator showing success or error based on requirements.
- Integrated environment-specific validation messages (e.g., for Azure).
- Improved code separation between presentation and validation for better maintainability.
- Unit tests: Adds tests for invalid passwords, covering both default and Azure cases.
Status icon rendered only when the step was previously visited, this caused problems with imported blueprints.
How to reproduce a bug:
1. import a blueprint with invalid hostname
2. skip to Review
Current behaviour:
- the Create blueprint button is disabled, but there is no indication of error next to the Hostname step in navigation
After fix:
- the error status should be rendered next to the Hostname nav item
The way the on premise wizard is initialized needed to be tweaked to
make it work for isEdit. Let's assume that the host distro and host
architecture are already correct in the blueprint.
Set sane defaults for some types rather than setting them to `undefined`.
This is so that we can set `exactOptionalPropertyTypes` to true in our
tsconfig.