Skip to content

Remove PropTypes runtime validation from UI components - #492

Merged
cigamit merged 1 commit into
ctrliq:mainfrom
blaipr:feature/remove-prop-types
Jun 22, 2026
Merged

Remove PropTypes runtime validation from UI components#492
cigamit merged 1 commit into
ctrliq:mainfrom
blaipr:feature/remove-prop-types

Conversation

@blaipr

@blaipr blaipr commented Jun 19, 2026

Copy link
Copy Markdown
Contributor
SUMMARY

Removes PropTypes runtime validation from the React UI ahead of the React 19 upgrade (React 19 drops the built-in PropTypes integration).

Across 214 files:

  • Removes every import PropTypes from 'prop-types' / named prop-types import and all Component.propTypes = {...} blocks.
  • Removes now-orphaned shape imports from the shared types module, plus prop-types-only local validators/shapes (e.g. CredentialLookup's idOrKind, ToolbarDeleteButton's requiredField / ItemToDelete).
  • Drops several long-dead validation blocks mistakenly assigned to .prototype / .propType (typos) that therefore never ran.

Also fully retires the dependency (the merge of the defaultProps → default-params change removed the last non-PropTypes consumer of the types shapes):

  • Deletes src/types.js — every consumer imported its shapes only for PropTypes, so it is now unused.
  • Drops prop-types from package.json dependencies (it stays available transitively via PatternFly / react-ace / react-router-dom) and removes its licenses/ui mirror.

No behavioural change — PropTypes only emit dev-mode console warnings; nothing renders or branches on them. defaultProps were already converted to default parameters in a separate, merged change, so no default values are affected here.

ISSUE TYPE
  • Bug, Docs Fix or other nominal change
COMPONENT NAME
  • UI
ADDITIONAL INFORMATION
  • npm --prefix awx/ui run lint clean; npm --prefix awx/ui run test552 suites / 2908 tests pass (3 documented skips); npm --prefix awx/ui run build (production) compiles clean; test_licenses.py green (removed the orphaned prop-types license).
  • Rebased onto current main.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Removes prop-types runtime validation from the AWX React UI codebase as part of the React 19 upgrade preparation, eliminating PropTypes imports/usages and associated types-module shapes that were only used for PropTypes.

Changes:

  • Removed all prop-types imports and all Component.propTypes = … blocks across the UI.
  • Removed PropTypes-only shape imports from the shared types module at call sites (while intentionally retaining types.js / prop-types dependency for a follow-up).
  • Deleted several previously-nonfunctional validation blocks that were assigned to typos like .prototype / .propType.

Reviewed changes

Copilot reviewed 214 out of 214 changed files in this pull request and generated no comments.

Show a summary per file
File Description
awx/ui/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListItem.js Remove PropTypes import and propTypes block
awx/ui/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListDenyButton.js Remove PropTypes import and propTypes block
awx/ui/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListApproveButton.js Remove PropTypes import and propTypes block
awx/ui/src/screens/User/UserTeams/UserTeamListItem.js Remove PropTypes import and dead .prototype validation block
awx/ui/src/screens/User/UserList/UserListItem.js Remove PropTypes import and dead .prototype validation block
awx/ui/src/screens/User/shared/UserForm.js Remove PropTypes import and propTypes block
awx/ui/src/screens/TopologyView/Header.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerToolbar.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerNode.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerLink.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerGraph.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Visualizer.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/UnsavedChangesModal.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/SystemJobTemplatesList.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/ProjectsList.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/JobTemplatesList.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/InventorySourcesList.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeNextButton.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeModal.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/LinkModals/LinkModal.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Template/Survey/SurveyQuestionForm.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Template/shared/WorkflowJobTemplateForm.js Remove PropTypes/types imports and propTypes block
awx/ui/src/screens/Template/shared/PlaybookSelect.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Template/shared/JobTemplateForm.js Remove PropTypes/types imports and propTypes block
awx/ui/src/screens/Template/JobTemplateEdit/JobTemplateEdit.js Remove types import and propTypes block
awx/ui/src/screens/Team/TeamList/TeamListItem.js Remove PropTypes/types import and inline propTypes assignment
awx/ui/src/screens/Team/TeamEdit/TeamEdit.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Team/shared/TeamForm.js Remove PropTypes import and propTypes block
awx/ui/src/screens/SubscriptionUsage/ChartComponents/UsageChart.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Setting/shared/SharedFields.js Remove PropTypes import and field component propTypes blocks
awx/ui/src/screens/Setting/shared/RevertFormActionGroup.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Setting/shared/RevertButton.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Project/shared/ProjectSyncButton.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Project/shared/ProjectForm.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Project/ProjectList/ProjectListItem.js Remove PropTypes/types import and inline propTypes assignment
awx/ui/src/screens/Project/ProjectDetail/ProjectDetail.js Remove types import and propTypes block
awx/ui/src/screens/Organization/shared/OrganizationForm.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Organization/OrganizationTeams/OrganizationTeamListItem.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Organization/OrganizationTeams/OrganizationTeamList.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Organization/OrganizationList/OrganizationListItem.js Remove PropTypes/types import and propTypes block
awx/ui/src/screens/Organization/OrganizationExecEnvList/OrganizationExecEnvListItem.js Remove PropTypes/types import and dead .prototype validation block
awx/ui/src/screens/Organization/OrganizationEdit/OrganizationEdit.js Remove PropTypes import and propTypes block
awx/ui/src/screens/NotificationTemplate/shared/TypeInputsSubForm.js Remove PropTypes/types import and multiple propTypes blocks/assignments
awx/ui/src/screens/NotificationTemplate/shared/NotificationTemplateForm.js Remove PropTypes import and propTypes block
awx/ui/src/screens/NotificationTemplate/NotificationTemplateEdit/NotificationTemplateEdit.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutputToolbar.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutputNode.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutputLink.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutput.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Job/JobOutput/shared/OutputToolbar.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Job/JobOutput/HostEventModal.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Job/JobDetail/JobDetail.js Remove types import and propTypes block
awx/ui/src/screens/Inventory/SmartInventoryEdit/SmartInventoryEdit.js Remove types import and propTypes block
awx/ui/src/screens/Inventory/SmartInventoryDetail/SmartInventoryDetail.js Remove types import and propTypes block
awx/ui/src/screens/Inventory/shared/SmartInventoryForm.js Remove PropTypes/types import and propTypes block
awx/ui/src/screens/Inventory/shared/InventorySourceSyncButton.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Inventory/shared/InventorySourceForm.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Inventory/shared/InventoryGroupsDeleteModal.js Remove PropTypes/types import and propTypes block
awx/ui/src/screens/Inventory/shared/InventoryForm.js Remove PropTypes import and dead .propType validation block
awx/ui/src/screens/Inventory/shared/FederatedInventoryForm.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Inventory/shared/ConstructedInventoryForm.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Inventory/InventoryRelatedGroups/InventoryRelatedGroupListItem.js Remove PropTypes/types import and propTypes block
awx/ui/src/screens/Inventory/InventoryList/InventoryListItem.js Remove PropTypes/types import and inline propTypes assignment
awx/ui/src/screens/Inventory/InventoryHosts/InventoryHostItem.js Remove PropTypes/types import and propTypes block
awx/ui/src/screens/Inventory/InventoryHostGroups/InventoryHostGroupItem.js Remove PropTypes/types import and propTypes block
awx/ui/src/screens/Inventory/InventoryHostFacts/InventoryHostFacts.js Remove types import and propTypes block
awx/ui/src/screens/Inventory/InventoryHostEdit/InventoryHostEdit.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Inventory/InventoryHostDetail/InventoryHostDetail.js Remove types import and propTypes block
awx/ui/src/screens/Inventory/InventoryGroups/InventoryGroupItem.js Remove PropTypes/types import and propTypes block
awx/ui/src/screens/Inventory/InventoryGroupHosts/InventoryGroupHostListItem.js Remove PropTypes/types import and propTypes block
awx/ui/src/screens/Inventory/InventoryEdit/InventoryEdit.js Remove PropTypes import and dead .propType validation block
awx/ui/src/screens/Inventory/InventoryDetail/InventoryDetail.js Remove types import and propTypes block
awx/ui/src/screens/Inventory/FederatedInventoryEdit/FederatedInventoryEdit.js Remove types import and propTypes block
awx/ui/src/screens/Inventory/FederatedInventoryDetail/FederatedInventoryDetail.js Remove types import and propTypes block
awx/ui/src/screens/Inventory/ConstructedInventoryDetail/ConstructedInventorySyncButton.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Inventory/ConstructedInventoryDetail/ConstructedInventoryDetail.js Remove types import and propTypes block
awx/ui/src/screens/Inventory/AdvancedInventoryHosts/AdvancedInventoryHosts.js Remove types import and propTypes block
awx/ui/src/screens/Inventory/AdvancedInventoryHosts/AdvancedInventoryHostListItem.js Remove PropTypes/types import and propTypes block
awx/ui/src/screens/Inventory/AdvancedInventoryHosts/AdvancedInventoryHostList.js Remove types import and propTypes block
awx/ui/src/screens/Inventory/AdvancedInventoryHostDetail/AdvancedInventoryHostDetail.js Remove types import and propTypes block
awx/ui/src/screens/Instances/InstanceList/InstanceListItem.js Remove PropTypes/types import and dead .prototype validation block
awx/ui/src/screens/InstanceGroup/shared/InstanceGroupForm.js Remove PropTypes import and propTypes block
awx/ui/src/screens/InstanceGroup/shared/ContainerGroupForm.js Remove PropTypes import and propTypes block
awx/ui/src/screens/InstanceGroup/Instances/InstanceListItem.js Remove PropTypes/types import and dead .prototype validation block
awx/ui/src/screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.js Remove PropTypes/types import and dead .prototype validation block
awx/ui/src/screens/HostMetrics/HostMetricsListItem.js Remove PropTypes/types import and propTypes block
awx/ui/src/screens/HostMetrics/HostMetricsDeleteButton.js Remove PropTypes import and propTypes block (and PropTypes-only shape)
awx/ui/src/screens/Host/HostList/SmartInventoryButton.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Host/HostList/HostListItem.js Remove PropTypes/types import and propTypes block
awx/ui/src/screens/Host/HostGroups/HostGroupItem.js Remove PropTypes/types import and propTypes block
awx/ui/src/screens/Host/HostFacts/HostFacts.js Remove types import and propTypes block
awx/ui/src/screens/Host/HostEdit/HostEdit.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Host/HostDetail/HostDetail.js Remove types import and propTypes block
awx/ui/src/screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.js Remove PropTypes import and propTypes block
awx/ui/src/screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentListItem.js Remove PropTypes/types import and dead .prototype validation block
awx/ui/src/screens/Dashboard/shared/LineChart.js Remove PropTypes import and propTypes block
awx/ui/src/screens/CredentialType/shared/CredentialTypeForm.js Remove PropTypes import and propTypes block
awx/ui/src/screens/CredentialType/CredentialTypeList/CredentialTypeListItem.js Remove PropTypes/types import and dead .prototype validation block
awx/ui/src/screens/Credential/shared/TypeInputsSubForm.js Remove types import and propTypes block
awx/ui/src/screens/Credential/shared/ExternalTestModal.js Remove PropTypes import and dead .propType validation block
awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginTestAlert.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginSelected.js Remove PropTypes/types import and propTypes block
awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginField.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Credential/shared/CredentialFormFields/CredentialField.js Remove PropTypes/types import and propTypes blocks
awx/ui/src/screens/Credential/shared/CredentialFormFields/BecomeMethodField.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Credential/shared/CredentialForm.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Credential/CredentialList/CredentialListItem.js Remove PropTypes/types import and propTypes block
awx/ui/src/screens/Credential/CredentialEdit/CredentialEdit.js Remove types import and propTypes block
awx/ui/src/screens/Credential/CredentialDetail/CredentialDetail.js Remove types import and propTypes block
awx/ui/src/screens/Application/shared/ApplicationForm.js Remove PropTypes import and propTypes block
awx/ui/src/screens/Application/ApplicationTokens/ApplicationTokenListItem.js Remove PropTypes/types import and propTypes block
awx/ui/src/screens/Application/ApplicationsList/ApplicationListItem.js Remove PropTypes/types import and propTypes block
awx/ui/src/screens/ActivityStream/ActivityStreamListItem.js Remove PropTypes import and inline propTypes assignment
awx/ui/src/hooks/useToast.js Remove PropTypes/types import and Toast.propTypes block
awx/ui/src/components/Workflow/WorkflowTools.js Remove PropTypes import and propTypes block
awx/ui/src/components/Workflow/WorkflowStartNode.js Remove PropTypes import and propTypes block
awx/ui/src/components/Workflow/WorkflowNodeTypeLetter.js Remove PropTypes import and propTypes block
awx/ui/src/components/Workflow/WorkflowNodeHelp.js Remove PropTypes import and propTypes block
awx/ui/src/components/Workflow/WorkflowLinkHelp.js Remove PropTypes import and propTypes block
awx/ui/src/components/Workflow/WorkflowActionTooltipItem.js Remove PropTypes import and propTypes block
awx/ui/src/components/Workflow/WorkflowActionTooltip.js Remove PropTypes import and propTypes block
awx/ui/src/components/StatusLabel/StatusLabel.js Remove PropTypes import and propTypes block
awx/ui/src/components/StatusIcon/StatusIcon.js Remove PropTypes import and propTypes block
awx/ui/src/components/Sparkline/Sparkline.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/Sort/Sort.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/SelectedList/SelectedList.js Remove PropTypes import and propTypes block
awx/ui/src/components/SelectedList/DraggableSelectedList.js Remove PropTypes import and propTypes block
awx/ui/src/components/SelectableCard/SelectableCard.js Remove PropTypes import and propTypes block
awx/ui/src/components/Search/Search.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/Search/LookupTypeInput.js Remove PropTypes import and propTypes block
awx/ui/src/components/Search/AdvancedSearch.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/ScreenHeader/ScreenHeader.js Remove PropTypes import and propTypes blocks
awx/ui/src/components/Schedule/shared/ScheduleForm.js Remove PropTypes import and propTypes block
awx/ui/src/components/Schedule/shared/FrequencySelect.js Remove PropTypes import and propTypes block
awx/ui/src/components/Schedule/ScheduleOccurrences/ScheduleOccurrences.js Remove PropTypes import and propTypes block
awx/ui/src/components/Schedule/ScheduleList/ScheduleListItem.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/Schedule/ScheduleList/ScheduleList.js Remove PropTypes import and propTypes block
awx/ui/src/components/Schedule/ScheduleEdit/ScheduleEdit.js Remove PropTypes import and propTypes block
awx/ui/src/components/Schedule/ScheduleDetail/ScheduleDetail.js Remove types import and propTypes block
awx/ui/src/components/Schedule/ScheduleAdd/ScheduleAdd.js Remove PropTypes import and propTypes block
awx/ui/src/components/RoutedTabs/RoutedTabs.js Remove PropTypes import and propTypes block
awx/ui/src/components/ResourceAccessList/ResourceAccessListItem.js Remove PropTypes/types import and inline propTypes assignment
awx/ui/src/components/ResourceAccessList/DeleteRoleConfirmationModal.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/PromptDetail/PromptDetail.js Remove PropTypes import and propTypes block
awx/ui/src/components/Popover/Popover.js Remove PropTypes import and propTypes block
awx/ui/src/components/PaginatedTable/ToolbarSyncSourceButton.js Remove PropTypes import and propTypes block
awx/ui/src/components/PaginatedTable/ToolbarDeleteButton.js Remove PropTypes import and propTypes block (and PropTypes-only validators)
awx/ui/src/components/PaginatedTable/ToolbarAddButton.js Remove PropTypes import and propTypes block
awx/ui/src/components/PaginatedTable/PaginatedTable.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/OptionsList/OptionsList.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/NotificationList/NotificationListItem.js Remove PropTypes import and propTypes block
awx/ui/src/components/NotificationList/NotificationList.js Remove PropTypes import and propTypes block
awx/ui/src/components/MultiSelect/TagMultiSelect.js Remove PropTypes import and propTypes block
awx/ui/src/components/MultiButtonToggle/MultiButtonToggle.js Remove PropTypes import and PropTypes-only custom validator/propTypes
awx/ui/src/components/Lookup/ProjectLookup.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/Lookup/PeersLookup.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/Lookup/OrganizationLookup.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/Lookup/MultiCredentialsLookup.js Remove PropTypes import and propTypes block
awx/ui/src/components/Lookup/Lookup.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/Lookup/InventoryLookup.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/Lookup/InstanceGroupsLookup.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/Lookup/HostFilterLookup.js Remove PropTypes import and propTypes block
awx/ui/src/components/Lookup/ExecutionEnvironmentLookup.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/Lookup/CredentialLookup.js Remove PropTypes/types import and propTypes block (and PropTypes-only validator)
awx/ui/src/components/Lookup/ApplicationLookup.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/ListHeader/ListHeader.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/LaunchPrompt/steps/SurveyStep.js Remove types import and propTypes block
awx/ui/src/components/LaunchButton/LaunchButton.js Remove PropTypes import and propTypes block
awx/ui/src/components/LabelSelect/LabelSelect.js Remove PropTypes import and propTypes block
awx/ui/src/components/JobList/JobListCancelButton.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/InstanceGroupLabels/InstanceGroupLabels.js Remove PropTypes import and propTypes block
awx/ui/src/components/HostForm/HostForm.js Remove PropTypes import and propTypes block
awx/ui/src/components/FormField/PasswordInput.js Remove PropTypes import and propTypes block
awx/ui/src/components/FormField/PasswordField.js Remove PropTypes import and propTypes block
awx/ui/src/components/FormField/FormField.js Remove PropTypes import and propTypes block
awx/ui/src/components/FormField/CheckboxField.js Remove PropTypes import and propTypes block
awx/ui/src/components/FormField/ArrayTextField.js Remove PropTypes import and propTypes block
awx/ui/src/components/FormActionGroup/FormActionGroup.js Remove PropTypes import and propTypes block
awx/ui/src/components/FieldWithPrompt/FieldWithPrompt.js Remove PropTypes import and propTypes block
awx/ui/src/components/ExpandCollapse/ExpandCollapse.js Remove PropTypes import and propTypes block
awx/ui/src/components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/ErrorDetail/ErrorDetail.js Remove PropTypes import and propTypes block
awx/ui/src/components/DisassociateButton/DisassociateButton.js Remove PropTypes import and propTypes block
awx/ui/src/components/DetailList/UserDateDetail.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/DetailList/DetailBadge.js Remove PropTypes import and propTypes block
awx/ui/src/components/DetailList/Detail.js Remove PropTypes import and propTypes block
awx/ui/src/components/DetailList/DeletedDetail.js Remove PropTypes import and propTypes block
awx/ui/src/components/DetailList/CodeDetail.js Remove PropTypes import and propTypes block
awx/ui/src/components/DeleteButton/DeleteButton.js Remove PropTypes import and propTypes block
awx/ui/src/components/DataListToolbar/DataListToolbar.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/CredentialChip/CredentialChip.js Remove types import and propTypes block
awx/ui/src/components/CopyButton/CopyButton.js Remove PropTypes import and propTypes block
awx/ui/src/components/ContentError/ContentError.js Remove PropTypes import and propTypes block
awx/ui/src/components/CodeEditor/VariablesField.js Remove PropTypes import and propTypes block
awx/ui/src/components/CodeEditor/VariablesDetail.js Remove PropTypes import and propTypes block
awx/ui/src/components/CodeEditor/CodeEditorField.js Remove PropTypes import and propTypes block
awx/ui/src/components/CodeEditor/CodeEditor.js Remove PropTypes import and propTypes block
awx/ui/src/components/ChipGroup/ChipGroup.js Remove PropTypes import and propTypes block
awx/ui/src/components/CheckboxListItem/CheckboxListItem.js Remove PropTypes import and propTypes block
awx/ui/src/components/AppContainer/PageHeaderToolbar.js Remove PropTypes import and propTypes block
awx/ui/src/components/AppContainer/NavExpandableGroup.js Remove PropTypes import and propTypes block
awx/ui/src/components/AnsibleSelect/AnsibleSelect.js Remove PropTypes import and propTypes block
awx/ui/src/components/AdHocCommands/AdHocDetailsStep.js Remove PropTypes import and propTypes block
awx/ui/src/components/AdHocCommands/AdHocCredentialStep.js Remove PropTypes import and propTypes block
awx/ui/src/components/AdHocCommands/AdHocCommandsWizard.js Remove PropTypes import and propTypes block
awx/ui/src/components/AdHocCommands/AdHocCommands.js Remove PropTypes import and propTypes block
awx/ui/src/components/AddRole/SelectRoleStep.js Remove PropTypes import and propTypes block
awx/ui/src/components/AddRole/SelectResourceStep.js Remove PropTypes/types import and propTypes block
awx/ui/src/components/AddRole/CheckboxCard.js Remove PropTypes import and propTypes block
awx/ui/src/components/AddRole/AddResourceRole.js Remove PropTypes import and propTypes block
awx/ui/src/components/AddDropDownButton/AddDropDownButton.js Remove PropTypes import and propTypes block
awx/ui/src/components/About/About.js Remove PropTypes import and propTypes block

React removed the built-in PropTypes integration in React 19, so this strips the
runtime validation from the UI ahead of that upgrade.

- Remove every `import PropTypes from 'prop-types'` / named prop-types import and
  all `Component.propTypes = {...}` blocks across 214 files.
- Remove now-orphaned shape imports from the shared `types` module and the
  prop-types-only local validators/shapes (CredentialLookup's `idOrKind`,
  ToolbarDeleteButton's `requiredField` / `ItemToDelete`, etc.).
- Drop several long-dead validation blocks that were mistakenly assigned to
  `.prototype` / `.propType` (typos) and so never actually ran.
- Delete `src/types.js`: every consumer imported its shapes only for PropTypes,
  so it is now unused. Drop the `prop-types` dependency from package.json (it
  remains available transitively via PatternFly / react-router) and remove its
  license mirror.

No behavioural change: PropTypes only emit dev-mode console warnings. The
`defaultProps` -> default-parameter conversion already merged separately, so no
default values are affected here.
@blaipr
blaipr force-pushed the feature/remove-prop-types branch from bb681d5 to a3f1412 Compare June 19, 2026 17:15
@blaipr

blaipr commented Jun 19, 2026

Copy link
Copy Markdown
Contributor Author

Rebased onto current main (it conflicted with #491 across the same files). Regenerated the removal on top of the merged defaultProps change. Since #491 dropped the last non PropTypes use of the shared types shapes, types.js is now fully unused, so this also deletes it and drops the prop-types dependency (still present transitively) plus its license. Lint clean, 552 suites green, production build clean, test_licenses green. Mergeable now.

@cigamit
cigamit merged commit 2eb0683 into ctrliq:main Jun 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants