Skip to content

Comments

[WIP] Migrate legacy PatternFly Modals to PatternFly v6#16054

Open
rhamilto wants to merge 5 commits intoopenshift:mainfrom
rhamilto:CONSOLE-4447-legacy-patternfly
Open

[WIP] Migrate legacy PatternFly Modals to PatternFly v6#16054
rhamilto wants to merge 5 commits intoopenshift:mainfrom
rhamilto:CONSOLE-4447-legacy-patternfly

Conversation

@rhamilto
Copy link
Member

@rhamilto rhamilto commented Feb 23, 2026

Summary

This PR migrates several modals from deprecated PatternFly Modal to PatternFly v6, building upon #16015.

Note: This PR includes changes from #16015 and is dependent upon it.

Modals migrated:

  • CreateProjectModal - Updated to use modern Form, FormGroup, TextInput, TextArea components with ModalFooterWithAlerts
  • CreateNamespaceModal - Similar updates with Select component for network policy
  • VSphereConnectionModal - Updated with Formik integration and conditional rendering
  • ReplaceCodeModal - Simple modal with three action buttons and close button
  • TestFunctionModal - Removed deprecated position prop from legacy Modal (still using deprecated Modal for now due to custom header/footer). Note: choosing not to do the full migration due to complexity of the existing modal and challenges testing.

Key changes:

  • ✅ PatternFly 6 Modal structure: ModalHeader, ModalBody, ModalFooter (for CreateProject, CreateNamespace, VSphereConnection, ReplaceCode)
  • ✅ Modern form components: Form, FormGroup, TextInput, TextArea
  • ModalFooterWithAlerts for standardized error handling
  • ✅ Proper form/button association using id and form attributes
  • ✅ Updated onChange handlers to match PatternFly v6 signature: (_event, value) => setValue(value)
  • ✅ Close button (X) via onClose prop
  • ✅ Test updated for ReplaceCodeModal close button

Test plan

  • Test CreateProjectModal creation flow
  • Test CreateNamespaceModal creation flow with network policy options
  • Test TestFunctionModal Request/Response navigation
  • Test VSphereConnectionModal with Formik validation
  • Test ReplaceCodeModal actions
  • Verify error handling displays correctly in ModalFooterWithAlerts

🤖 Generated with Claude Code

rhamilto and others added 4 commits February 19, 2026 16:40
Update Cancel button variants from "secondary" to "link" in modern
PatternFly modals to follow PatternFly standards.

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
… wrapper

- Migrate useCopyCodeModal, FavoriteButton, and TourStepComponent from
  deprecated Modal wrapper to modern PatternFly Modal components
- Remove deprecated Modal wrapper (packages/console-shared/src/components/modal/)
- Migrate CatalogDetailsModal and operator-hub-items from deprecated
  PatternFly Modal to modern Modal components
- Preserve ocs-modal CSS class for catalog modal positioning
- Fix FavoriteButton form submission bug by adding preventDefault
- Fix Guided Tour accessibility warning by closing Help dropdown and
  blurring focus before starting tour

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Migrate DeleteModal from deprecated factory/modal components to
  modern PatternFly v6 Modal components
- Create reusable ModalFooterWithAlerts component for alert display
- Update configure-count-modal and configure-machine-autoscaler-modal
  to use modern Modal components and ModalFooterWithAlerts

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
… components

This commit updates multiple modal components to use modern PatternFly v6
patterns and replaces deprecated error display components with the new
ModalFooterWithAlerts component.

Changes:
- Replace ModalErrorContent with ModalFooterWithAlerts in:
  - clone-pvc-modal.tsx
  - modify-vac-modal.tsx
  - ResourceLimitsModal.tsx
  - restore-pvc-modal.tsx
  - ConfigureUnschedulableModal.tsx
  - DeletePDBModal.tsx
- Remove onSubmit handlers from Form elements
- Move form submission to onClick handlers on submit buttons
- Add form attribute to submit buttons to associate with form id
- Fix Formik type compatibility in ResourceLimitsModal by wrapping
  handleSubmit in arrow function
- Delete unused SCSS files:
  - packages/console-app/src/components/modals/clone/_clone-pvc-modal.scss
  - packages/console-app/src/components/modals/restore-pvc/restore-pvc-modal.scss

All modals now follow the PatternFly "with form" pattern with consistent
error/alert display using ModalFooterWithAlerts.
@openshift-ci openshift-ci bot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Feb 23, 2026
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 23, 2026

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@openshift-ci openshift-ci bot added the component/core Related to console core functionality label Feb 23, 2026
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 23, 2026

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: rhamilto

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@openshift-ci openshift-ci bot added component/knative Related to knative-plugin approved Indicates a PR has been approved by an approver from all required OWNERS files. component/metal3 Related to metal3-plugin component/olm Related to OLM component/shared Related to console-shared labels Feb 23, 2026
@rhamilto rhamilto force-pushed the CONSOLE-4447-legacy-patternfly branch 2 times, most recently from d0e15f3 to cc37c78 Compare February 23, 2026 21:05
@rhamilto rhamilto changed the title [WIP] Migrate additional modals to PatternFly v6 [WIP] Migrate legacy PatternFly Modals to PatternFly v6 Feb 23, 2026
@rhamilto rhamilto marked this pull request as ready for review February 23, 2026 21:05
@rhamilto rhamilto force-pushed the CONSOLE-4447-legacy-patternfly branch from cc37c78 to 16f726c Compare February 23, 2026 21:58
@openshift-ci openshift-ci bot added the kind/i18n Indicates issue or PR relates to internationalization or has content that needs to be translated label Feb 23, 2026
Migrate the following modals from deprecated PatternFly Modal to v6:
- CreateProjectModal: Updated to use ModalHeader, ModalBody, ModalFooterWithAlerts with Form, FormGroup, TextInput, and TextArea components
- CreateNamespaceModal: Similar updates with additional Select component for network policy
- VSphereConnectionModal: Updated with Formik integration and conditional rendering
- ReplaceCodeModal: Simple modal migration with three action buttons and close button test
- TestFunctionModal: Remove position prop so the modal uses default center positioning

All modals now use:
- PatternFly 6 Modal structure (ModalHeader, ModalBody, ModalFooter)
- Modern form components (Form, FormGroup, TextInput, TextArea)
- ModalFooterWithAlerts for error handling where applicable
- Proper form/button association using id and form attributes

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
@rhamilto rhamilto force-pushed the CONSOLE-4447-legacy-patternfly branch from 16f726c to 04f33f7 Compare February 23, 2026 22:58
@openshift-ci
Copy link
Contributor

openshift-ci bot commented Feb 24, 2026

@rhamilto: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-gcp-console 04f33f7 link true /test e2e-gcp-console

Full PR test history. Your PR dashboard.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. component/core Related to console core functionality component/knative Related to knative-plugin component/metal3 Related to metal3-plugin component/olm Related to OLM component/shared Related to console-shared do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/i18n Indicates issue or PR relates to internationalization or has content that needs to be translated

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant