We need to start using `undefined` as the default state for when a value
has not been defined. Previously we had used things like `’’` for string
typed values. But this causes problems later when generating the request
we send to image-builder. Using `undefined` is explicit and will make
generating the requests much easier (as we don’t need to check for `’’`,
determine the intent, and convert it to undefined if necessary).
Explicit is better than implicit.
With that in mind, tests have been added to ensure that the correct
request is sent to the API for every option on the Registration step.
This is facilitated using a new `spyOnRequest()` function. In the
future, we will have similar tests for the rest of the steps.
A few other minor things:
1. We need to get the `store` using `useStore()`
for when we later call `store.getState()` because the tests use a different
store that is configured in the renderer than the one we were importing.
2. In the wizardSlice, a new type RegistrationType is added that provides
additional type safety instead of using `string`.
this commit adds kernel arguments and enabled/disabled services to Oscap step.
and also add to Review step, add some tests to kernel and services as well.
This removes the aspect ratio for chart and sets `maintainAspectRatio` to false.
The aspect ratio was causing problems with the annotation plugin, rendering the currentDate annotation line in a wrong place for some windows sizes.
This created a new folder for the Review step and copies components that will be needed:
- ReviewStep.tsx
- ReviewStepTables.tsx
- ReviewStepTextLists.tsx
Enables Blueprints filtering.
Given this is a server side filtering, it also ads Debounce hook.
This hook enables delay the API request to save server roundtrips.
Refs HMS-3389
This commit fixes the "A component is changing an uncontrolled input to be controlled" error in React components by ensuring input values are consistently initialized as strings. Previously, values initialized as undefined led to inconsistencies in controlled component behavior. By initializing with empty strings or using value={someValue ?? ''}, we ensure that input components remain controlled throughout their lifecycle, complying with React's expectations for controlled components and enhancing overall component stability.
This creates a new folder for the Repositories step and copies over all needed files:
- Repositories.tsx
- RepositoriesStatus.tsx
- RepositoryUnavailable.tsx
This temporarily disables recreating images containing custom repos.
Changes were marked with "Temporarily disable" and "REMOVE" comments to make the revert easier.
This adds the OpenSCAP step to the V2Wizard,
adds new values to the wizardSlice and enables relevant tests in the `CreateImageWizard.test.tsx` test suite
Commit bae6435fd9 adds scaffolding for the
blueprint table. Blueprint features should be hidden behind experimental
flags. The new buttons related to creating blueprints and rebuilding
images in the header were not hidden behind the experimental flag, this
commit fixes that and does so.
bae6435fd9 also changed the header title
from "Image Builder" to "Images". This change has been a long time
coming - it is being left in for now. We may want to revisit the copy in
the popovers to align it as the term "Image Builder" is still being used
in those.
When a package is added to the chosen packages it stays in the list of available packages, but gets disabled as an option.
This adds a visual indication in a form of greyed out name of the package.
This migrates all the needed components from Javascript and DDF to Typescript and RTK.
New slices were added for registration type and activation key.
Disabling the "Next" button should work correctly now.
This created a new folder for the Registration step and copies components that will be needed:
- ActivationKeyInformation.tsx
- ActivationKeys.tsx
- Registration.tsx
- RegistrationKeyInformation.tsx
Fixes#1552.
The wizardSlice's initializeWizard action was not working because when it
was passed to `dispatch()` as an argument it was missing the `()`...
oops!
It also needs to be dispatched inside of a useEffect hook with an empty
dependency array so that it is only dispatched once, when the wizard
opens.
The tests have not been modified at this point, only uncommented, so the
next commit will have a clear diff.
Some data-testids were added to radio selectors and the Google principle
input as well for use in the tests.
The e-mail validator now requires a domain.
Switching from 'withGoogle' to 'withInsights' now sets the other GCP
related options to 'undefined' in order to keep the store state such
that it accurately reflects the current wizard state.
This is done in the reducer, not via a listener. That is a bit
inconsistent with the current listeners in place but this is an evolving
design and the inconsistency is acceptable for now. We may either accept
it, move the reducer actions here into listeners, or move the existing
listeners into reducers at some point in the future.
We encountered a number of bugs with the previous implementation where
going to the next or previous step and returning to the AWS step
resulted in incorrectly displayed information about the selected source,
etc...
All state that needs to be available during the entire wizard life cycle
has been moved to RTK.
This commit addresses warnings related to the react-hooks/exhaustive-deps rule.
It resolves these warnings by adding the missing dependencies to the useEffect hook.