The frontend component library decoupled notifications from redux.
Dispatching notifications via the notifications middleware was replaced
by a new `useAddNotifications` hook.
We mostly used the notifications middleware outside of React Components
in our `enhancedImageBuilderApi` store for mutation events. I created a
wrapper around the RTK hooks that uses the `useAddNotification` hook
and created a directory for the new hooks.
In other places, where we were using the notification dispatcher inside
React components, I replaced the call with the new hook.
[1] b1d4973144/packages/notifications/doc/migration.md
bump @redhat-cloud-services/frontend-components-notifications
---
updated-dependencies:
- dependency-name: "@redhat-cloud-services/frontend-components-notifications"
dependency-version: 6.0.2
dependency-type: direct:production
update-type: version-update:semver-major
...
Co-authored-by: dependabot[bot] <support@github.com>
Assisted-by: cursor ide for generalizing the `useMutationWithNotification`
hook.
- Add required distribution field to RecommendPackageRequest
- Add modelVersion field to RecommendationsResponse
- Update frontend to send RHEL major version to API
- Add analytics tracking for distribution and modelVersion
Enables version-specific package recommendations and model usage tracking.
- Add listRepositoryParameters endpoint to contentSources API
- Display human-readable names instead of technical labels
- Fix inconsistency between Image Builder and Repositories service display
- Resolve "any" vs "Any" capitalization issue -
https://github.com/osbuild/image-builder-frontend/issues/3008
If the reset button is clicked, there is a glitch that shows error state
for a moment. This commit removes the glitch by setting the snapshot
date even for invalid values, and removes the workaround that was
previously added.
We need to be able to stringify objects into a toml format for on-prem.
This is needed to save the worker config, unfortunately the current toml
package only parses toml and can't stringify back to toml.
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.
The jwt decode dependency helps us to keep track of the token that is
present in the Satellite command. jwt-decode is the most popular
dependency for the job, and very easy to use.
This adds a group input to the User step. The input is implemented as a `LabelInput`, when Administrator checkbox is checked, `wheel` group gets added and it's removal automatically unchecks the Administrator checkbox again.
This commit resolves an issue where the blueprint name did not update when the user changed the Architecture or Distribution.
Additionally, it sets an initial value for blueprintName in the WizardSlice.
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.
this commit remove confirmPassword from Mapper because we decide that
this field is not relevant anymore to Users step, and it should remove
from the mapper as well
Add initial package search. Include the version, release & arch information
in the summary, since some packages might have a release with the specific
architecture and a `noarch` version.
Add a `contentSourcesApi` for the on-prem frontend. We need to add a small
workaround and put these endpoints under the `cockpitApi` reducer.
since RTK query here, doesn't like splitting out apis when they are
fundamentally the same.
To workaround this we can will just chain the endpoints so:
`emptyCockpitApi` -> `contentSourcesApi` -> `cockpitApi`
This allows us to keep the `contentSourcesApi` separate so
we can export some of the endpoints so that the `cockpitApi`
doesn't become a monolith.
This is just a workaround to keep imports to the api definitions the same as before.
The added benefit is that we can then use these files to handle the mixed api types
between the service frontend and on-prem frontend.
Since we will need to add other api endpoints, e.g. `contentSourcesApi` for
the on-prem frontend, this PR restructures the store directory to make future
changes more manageable.
Only invoke the cockpit library when actually contacting the cloudapi.
The cockpit library isn't defined in the service, so any invocation of
the cockpit library when the application loads will make the frontend
crash.
Add a `cockpitBaseQuery` for api calls that need to be made against
the `cloudapi` on the osbuild-composer unix-socket. This function adds
an extra step of parsing the result and transforming it into JSON.
We need to wrap the `cockpit.http.request` call in a
Promise rather than async/await because cockpit rejects
the http request with two arguments (error & data/body)
and we need to handle this appropriately. It is not possible
to do this with a try/catch block