diff --git a/awx/ui/package-lock.json b/awx/ui/package-lock.json index 79e3c2cdf..a8eee8c3f 100644 --- a/awx/ui/package-lock.json +++ b/awx/ui/package-lock.json @@ -22,7 +22,6 @@ "html-entities": "2.6.0", "js-yaml": "4.2.0", "luxon": "^3.7.2", - "prop-types": "^15.8.1", "react": "17.0.2", "react-ace": "^10.1.0", "react-dom": "17.0.2", diff --git a/awx/ui/package.json b/awx/ui/package.json index eb7204749..f7407f165 100644 --- a/awx/ui/package.json +++ b/awx/ui/package.json @@ -22,7 +22,6 @@ "html-entities": "2.6.0", "js-yaml": "4.2.0", "luxon": "^3.7.2", - "prop-types": "^15.8.1", "react": "17.0.2", "react-ace": "^10.1.0", "react-dom": "17.0.2", diff --git a/awx/ui/src/components/About/About.js b/awx/ui/src/components/About/About.js index 714ef8af4..d87eb8446 100644 --- a/awx/ui/src/components/About/About.js +++ b/awx/ui/src/components/About/About.js @@ -3,7 +3,6 @@ // import React from 'react'; -import PropTypes from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { AboutModal } from '@patternfly/react-core'; import useBrandName from 'hooks/useBrandName'; @@ -70,10 +69,4 @@ function About({ version = null, isOpen = false, onClose }) { ); } -About.propTypes = { - isOpen: PropTypes.bool, - onClose: PropTypes.func.isRequired, - version: PropTypes.string, -}; - export default About; diff --git a/awx/ui/src/components/AdHocCommands/AdHocCommands.js b/awx/ui/src/components/AdHocCommands/AdHocCommands.js index c32b6948e..55bf8feef 100644 --- a/awx/ui/src/components/AdHocCommands/AdHocCommands.js +++ b/awx/ui/src/components/AdHocCommands/AdHocCommands.js @@ -4,7 +4,6 @@ import { useNavigate } from 'react-router-dom-v5-compat'; import { useLingui } from '@lingui/react/macro'; -import PropTypes from 'prop-types'; import { Button, DropdownItem, Tooltip } from '@patternfly/react-core'; import useRequest, { useDismissableError } from 'hooks/useRequest'; @@ -165,11 +164,4 @@ function AdHocCommands({ ); } -AdHocCommands.propTypes = { - adHocItems: PropTypes.arrayOf(PropTypes.object).isRequired, - hasListItems: PropTypes.bool.isRequired, - onLaunchLoading: PropTypes.func.isRequired, - moduleOptions: PropTypes.arrayOf(PropTypes.array).isRequired, -}; - export default AdHocCommands; diff --git a/awx/ui/src/components/AdHocCommands/AdHocCommandsWizard.js b/awx/ui/src/components/AdHocCommands/AdHocCommandsWizard.js index b59cae024..271f73763 100644 --- a/awx/ui/src/components/AdHocCommands/AdHocCommandsWizard.js +++ b/awx/ui/src/components/AdHocCommands/AdHocCommandsWizard.js @@ -2,7 +2,6 @@ import React from 'react'; import { useLingui } from '@lingui/react/macro'; import { withFormik, useFormikContext } from 'formik'; -import PropTypes from 'prop-types'; import Wizard from '../Wizard'; import useAdHocLaunchSteps from './useAdHocLaunchSteps'; @@ -75,10 +74,4 @@ const FormikApp = withFormik({ }, })(AdHocCommandsWizard); -FormikApp.propTypes = { - onLaunch: PropTypes.func.isRequired, - moduleOptions: PropTypes.arrayOf(PropTypes.array).isRequired, - onCloseWizard: PropTypes.func.isRequired, - credentialTypeId: PropTypes.number.isRequired, -}; export default FormikApp; diff --git a/awx/ui/src/components/AdHocCommands/AdHocCredentialStep.js b/awx/ui/src/components/AdHocCommands/AdHocCredentialStep.js index 3a9d04d66..1e18c948c 100644 --- a/awx/ui/src/components/AdHocCommands/AdHocCredentialStep.js +++ b/awx/ui/src/components/AdHocCommands/AdHocCredentialStep.js @@ -2,7 +2,6 @@ import React, { useEffect, useCallback } from 'react'; import { useLocation } from 'react-router-dom-v5-compat'; import { useLingui } from '@lingui/react/macro'; import styled from 'styled-components'; -import PropTypes from 'prop-types'; import { useField } from 'formik'; import { Form, FormGroup, Alert } from '@patternfly/react-core'; import { CredentialsAPI } from 'api'; @@ -151,7 +150,4 @@ function AdHocCredentialStep({ credentialTypeId }) { ); } -AdHocCredentialStep.propTypes = { - credentialTypeId: PropTypes.number.isRequired, -}; export default AdHocCredentialStep; diff --git a/awx/ui/src/components/AdHocCommands/AdHocDetailsStep.js b/awx/ui/src/components/AdHocCommands/AdHocDetailsStep.js index d7349d861..db84aa18c 100644 --- a/awx/ui/src/components/AdHocCommands/AdHocDetailsStep.js +++ b/awx/ui/src/components/AdHocCommands/AdHocDetailsStep.js @@ -1,7 +1,6 @@ /* eslint-disable react/no-unescaped-entities */ import React from 'react'; import { useLingui } from '@lingui/react/macro'; -import PropTypes from 'prop-types'; import { useField } from 'formik'; import { Form, FormGroup, Switch, Checkbox } from '@patternfly/react-core'; import styled from 'styled-components'; @@ -279,8 +278,4 @@ function AdHocDetailsStep({ moduleOptions }) { ); } -AdHocDetailsStep.propTypes = { - moduleOptions: PropTypes.arrayOf(PropTypes.array).isRequired, -}; - export default AdHocDetailsStep; diff --git a/awx/ui/src/components/AddDropDownButton/AddDropDownButton.js b/awx/ui/src/components/AddDropDownButton/AddDropDownButton.js index 64d77b332..2f902e8d3 100644 --- a/awx/ui/src/components/AddDropDownButton/AddDropDownButton.js +++ b/awx/ui/src/components/AddDropDownButton/AddDropDownButton.js @@ -1,7 +1,6 @@ import React, { useState, useRef, useEffect } from 'react'; import { useLingui } from '@lingui/react/macro'; -import PropTypes from 'prop-types'; import { Dropdown, DropdownPosition } from '@patternfly/react-core'; import { useKebabifiedMenu } from 'contexts/Kebabified'; import { ToolbarAddButton } from '../PaginatedTable'; @@ -50,9 +49,5 @@ function AddDropDownButton({ dropdownItems, ouiaId }) { ); } -AddDropDownButton.propTypes = { - dropdownItems: PropTypes.arrayOf(PropTypes.element.isRequired).isRequired, -}; - export { AddDropDownButton as _AddDropDownButton }; export default AddDropDownButton; diff --git a/awx/ui/src/components/AddRole/AddResourceRole.js b/awx/ui/src/components/AddRole/AddResourceRole.js index 3a297efc2..cbd7bdd25 100644 --- a/awx/ui/src/components/AddRole/AddResourceRole.js +++ b/awx/ui/src/components/AddRole/AddResourceRole.js @@ -1,5 +1,4 @@ import React, { useState, useEffect, useMemo } from 'react'; -import PropTypes from 'prop-types'; import { useLocation, useNavigate } from 'react-router-dom-v5-compat'; import { useLingui } from '@lingui/react/macro'; import { TeamsAPI, UsersAPI } from 'api'; @@ -284,12 +283,5 @@ function AddResourceRole({ ); } -AddResourceRole.propTypes = { - onClose: PropTypes.func.isRequired, - onSave: PropTypes.func.isRequired, - roles: PropTypes.shape(), - resource: PropTypes.shape(), -}; - export { AddResourceRole as _AddResourceRole }; export default AddResourceRole; diff --git a/awx/ui/src/components/AddRole/CheckboxCard.js b/awx/ui/src/components/AddRole/CheckboxCard.js index b4fd17aae..c5d9826e2 100644 --- a/awx/ui/src/components/AddRole/CheckboxCard.js +++ b/awx/ui/src/components/AddRole/CheckboxCard.js @@ -1,5 +1,4 @@ import React from 'react'; -import PropTypes from 'prop-types'; import { Checkbox as PFCheckbox } from '@patternfly/react-core'; import styled from 'styled-components'; @@ -44,12 +43,4 @@ function CheckboxCard({ ); } -CheckboxCard.propTypes = { - name: PropTypes.string.isRequired, - description: PropTypes.string, - isSelected: PropTypes.bool, - onSelect: PropTypes.func, - itemId: PropTypes.number.isRequired, -}; - export default CheckboxCard; diff --git a/awx/ui/src/components/AddRole/SelectResourceStep.js b/awx/ui/src/components/AddRole/SelectResourceStep.js index 529229fb0..357e3aefa 100644 --- a/awx/ui/src/components/AddRole/SelectResourceStep.js +++ b/awx/ui/src/components/AddRole/SelectResourceStep.js @@ -1,9 +1,7 @@ import React, { useCallback, useEffect } from 'react'; -import PropTypes from 'prop-types'; import { useLocation } from 'react-router-dom'; import { useLingui } from '@lingui/react/macro'; import useRequest from 'hooks/useRequest'; -import { SearchColumns, SortColumns } from 'types'; import { getQSConfig, parseQueryString } from 'util/qs'; import DataListToolbar from '../DataListToolbar'; import CheckboxListItem from '../CheckboxListItem'; @@ -140,15 +138,5 @@ function SelectResourceStep({ ); } -SelectResourceStep.propTypes = { - searchColumns: SearchColumns, - sortColumns: SortColumns, - displayKey: PropTypes.string, - onRowClick: PropTypes.func, - fetchItems: PropTypes.func.isRequired, - selectedLabel: PropTypes.string, - selectedResourceRows: PropTypes.arrayOf(PropTypes.object), -}; - export { SelectResourceStep as _SelectResourceStep }; export default SelectResourceStep; diff --git a/awx/ui/src/components/AddRole/SelectRoleStep.js b/awx/ui/src/components/AddRole/SelectRoleStep.js index 81b83559d..bacca104d 100644 --- a/awx/ui/src/components/AddRole/SelectRoleStep.js +++ b/awx/ui/src/components/AddRole/SelectRoleStep.js @@ -1,5 +1,4 @@ import React from 'react'; -import PropTypes from 'prop-types'; import { useLingui } from '@lingui/react/macro'; @@ -56,13 +55,4 @@ function RolesStep({ ); } -RolesStep.propTypes = { - onRolesClick: PropTypes.func, - roles: PropTypes.objectOf(PropTypes.object).isRequired, - selectedListKey: PropTypes.string, - selectedListLabel: PropTypes.string, - selectedResourceRows: PropTypes.arrayOf(PropTypes.object), - selectedRoleRows: PropTypes.arrayOf(PropTypes.object), -}; - export default RolesStep; diff --git a/awx/ui/src/components/AnsibleSelect/AnsibleSelect.js b/awx/ui/src/components/AnsibleSelect/AnsibleSelect.js index 47e58abfc..6e47bdcae 100644 --- a/awx/ui/src/components/AnsibleSelect/AnsibleSelect.js +++ b/awx/ui/src/components/AnsibleSelect/AnsibleSelect.js @@ -1,13 +1,4 @@ import React from 'react'; -import { - arrayOf, - oneOfType, - func, - number, - string, - shape, - bool, -} from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { FormSelect, FormSelectOption } from '@patternfly/react-core'; @@ -55,23 +46,5 @@ function AnsibleSelect({ ); } -const Option = shape({ - key: oneOfType([string, number]).isRequired, - value: oneOfType([string, number]).isRequired, - label: string.isRequired, - isDisabled: bool, -}); - -AnsibleSelect.propTypes = { - data: arrayOf(Option), - id: string.isRequired, - isValid: bool, - onBlur: func, - onChange: func.isRequired, - value: oneOfType([string, number]).isRequired, - className: string, - isDisabled: bool, -}; - export { AnsibleSelect as _AnsibleSelect }; export default AnsibleSelect; diff --git a/awx/ui/src/components/AppContainer/NavExpandableGroup.js b/awx/ui/src/components/AppContainer/NavExpandableGroup.js index 9a46f51e2..7c552eeee 100644 --- a/awx/ui/src/components/AppContainer/NavExpandableGroup.js +++ b/awx/ui/src/components/AppContainer/NavExpandableGroup.js @@ -1,5 +1,4 @@ import React from 'react'; -import PropTypes, { oneOfType, string, arrayOf } from 'prop-types'; import { matchPath, Link } from 'react-router-dom'; import { useLocation } from 'react-router-dom-v5-compat'; import { NavExpandable, NavItem } from '@patternfly/react-core'; @@ -44,10 +43,4 @@ function NavExpandableGroup(props) { ); } -NavExpandableGroup.propTypes = { - groupId: string.isRequired, - groupTitle: oneOfType([PropTypes.element, string]).isRequired, - routes: arrayOf(PropTypes.object).isRequired, -}; - export default NavExpandableGroup; diff --git a/awx/ui/src/components/AppContainer/PageHeaderToolbar.js b/awx/ui/src/components/AppContainer/PageHeaderToolbar.js index 132860a35..0e6959acc 100644 --- a/awx/ui/src/components/AppContainer/PageHeaderToolbar.js +++ b/awx/ui/src/components/AppContainer/PageHeaderToolbar.js @@ -2,7 +2,6 @@ // Modifications Copyright (c) 2023 Ctrl IQ, Inc. // import React, { useCallback, useEffect, useState } from 'react'; -import PropTypes from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Link } from 'react-router-dom'; @@ -233,10 +232,4 @@ function PageHeaderToolbar({ ); } -PageHeaderToolbar.propTypes = { - isAboutDisabled: PropTypes.bool, - onAboutClick: PropTypes.func.isRequired, - onLogoutClick: PropTypes.func.isRequired, -}; - export default PageHeaderToolbar; diff --git a/awx/ui/src/components/CheckboxListItem/CheckboxListItem.js b/awx/ui/src/components/CheckboxListItem/CheckboxListItem.js index 506dcc5b6..fba674290 100644 --- a/awx/ui/src/components/CheckboxListItem/CheckboxListItem.js +++ b/awx/ui/src/components/CheckboxListItem/CheckboxListItem.js @@ -1,5 +1,4 @@ import React from 'react'; -import PropTypes from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Td, Tr } from '@patternfly/react-table'; import { ActionsTd } from 'components/PaginatedTable'; @@ -78,13 +77,4 @@ const CheckboxListItem = ({ ); }; -CheckboxListItem.propTypes = { - isSelected: PropTypes.bool, - itemId: PropTypes.number.isRequired, - label: PropTypes.string.isRequired, - name: PropTypes.string.isRequired, - onDeselect: PropTypes.func.isRequired, - onSelect: PropTypes.func.isRequired, -}; - export default CheckboxListItem; diff --git a/awx/ui/src/components/ChipGroup/ChipGroup.js b/awx/ui/src/components/ChipGroup/ChipGroup.js index 04478181b..8f067177d 100644 --- a/awx/ui/src/components/ChipGroup/ChipGroup.js +++ b/awx/ui/src/components/ChipGroup/ChipGroup.js @@ -3,7 +3,6 @@ import React from 'react'; import { useLingui } from '@lingui/react/macro'; import { ChipGroup as PFChipGroup } from '@patternfly/react-core'; -import { number } from 'prop-types'; function ChipGroup({ numChips, totalChips, ...props }) { const { t } = useLingui(); @@ -17,9 +16,4 @@ function ChipGroup({ numChips, totalChips, ...props }) { ); } -ChipGroup.propTypes = { - numChips: number.isRequired, - totalChips: number.isRequired, -}; - export default ChipGroup; diff --git a/awx/ui/src/components/CodeEditor/CodeEditor.js b/awx/ui/src/components/CodeEditor/CodeEditor.js index 54658c799..ed9c386af 100644 --- a/awx/ui/src/components/CodeEditor/CodeEditor.js +++ b/awx/ui/src/components/CodeEditor/CodeEditor.js @@ -1,5 +1,4 @@ import React, { useEffect, useRef, useCallback } from 'react'; -import { oneOf, bool, number, string, func, oneOfType } from 'prop-types'; import ReactAce from 'react-ace'; import 'ace-builds/src-noconflict/mode-json'; @@ -203,14 +202,4 @@ function CodeEditor({ ); } -CodeEditor.propTypes = { - value: string.isRequired, - onChange: func, - mode: oneOf(['javascript', 'yaml', 'jinja2', 'json']).isRequired, - readOnly: bool, - hasErrors: bool, - fullHeight: bool, - rows: oneOfType([number, string]), - className: string, -}; export default CodeEditor; diff --git a/awx/ui/src/components/CodeEditor/CodeEditorField.js b/awx/ui/src/components/CodeEditor/CodeEditorField.js index f2fec4404..215802b55 100644 --- a/awx/ui/src/components/CodeEditor/CodeEditorField.js +++ b/awx/ui/src/components/CodeEditor/CodeEditorField.js @@ -1,14 +1,4 @@ import React from 'react'; -import { - string, - oneOfType, - object, - func, - bool, - node, - oneOf, - number, -} from 'prop-types'; import { useField } from 'formik'; import { FormGroup } from '@patternfly/react-core'; import CodeEditor from './CodeEditor'; @@ -53,16 +43,5 @@ function CodeEditorField({ ); } -CodeEditorField.propTypes = { - helperText: string, - id: string.isRequired, - name: string.isRequired, - label: oneOfType([object, string]).isRequired, - validate: func, - isRequired: bool, - tooltip: node, - mode: oneOf(['javascript', 'yaml', 'jinja2']).isRequired, - rows: number, -}; export default CodeEditorField; diff --git a/awx/ui/src/components/CodeEditor/VariablesDetail.js b/awx/ui/src/components/CodeEditor/VariablesDetail.js index 7a2c82384..352e85ad4 100644 --- a/awx/ui/src/components/CodeEditor/VariablesDetail.js +++ b/awx/ui/src/components/CodeEditor/VariablesDetail.js @@ -1,5 +1,4 @@ import React, { useState } from 'react'; -import { node, number, oneOfType, shape, string, arrayOf } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { @@ -150,14 +149,6 @@ function VariablesDetail({ ); } -VariablesDetail.propTypes = { - value: oneOfType([shape({}), arrayOf(string), string]).isRequired, - label: node.isRequired, - rows: oneOfType([number, string]), - dataCy: string, - helpText: oneOfType([node, string]), - name: string.isRequired, -}; function ModeToggle({ id, label, diff --git a/awx/ui/src/components/CodeEditor/VariablesField.js b/awx/ui/src/components/CodeEditor/VariablesField.js index 21f5f2da8..8d12a2147 100644 --- a/awx/ui/src/components/CodeEditor/VariablesField.js +++ b/awx/ui/src/components/CodeEditor/VariablesField.js @@ -1,5 +1,4 @@ import React, { useState, useEffect, useCallback } from 'react'; -import { string, bool, func, oneOf, shape } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { useField } from 'formik'; @@ -183,17 +182,6 @@ function VariablesField({ ); } -VariablesField.propTypes = { - id: string.isRequired, - name: string.isRequired, - label: string.isRequired, - readOnly: bool, - promptId: string, - initialMode: oneOf([YAML_MODE, JSON_MODE]), - onModeChange: func, - isRequired: bool, - validators: shape({}), -}; function VariablesFieldInternals({ id, name, diff --git a/awx/ui/src/components/ContentError/ContentError.js b/awx/ui/src/components/ContentError/ContentError.js index 6f19d2ccc..c227bb9fa 100644 --- a/awx/ui/src/components/ContentError/ContentError.js +++ b/awx/ui/src/components/ContentError/ContentError.js @@ -2,7 +2,6 @@ import React from 'react'; import { Link } from 'react-router-dom'; import { Navigate } from 'react-router-dom-v5-compat'; -import { bool, instanceOf } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { @@ -54,9 +53,5 @@ function ContentError({ error = null, children, isNotFound = false }) { ); } -ContentError.propTypes = { - error: instanceOf(Error), - isNotFound: bool, -}; export { ContentError as _ContentError }; export default ContentError; diff --git a/awx/ui/src/components/CopyButton/CopyButton.js b/awx/ui/src/components/CopyButton/CopyButton.js index a5d2a03b5..cb7bbc086 100644 --- a/awx/ui/src/components/CopyButton/CopyButton.js +++ b/awx/ui/src/components/CopyButton/CopyButton.js @@ -1,6 +1,5 @@ import React, { useEffect } from 'react'; import { useLingui } from '@lingui/react/macro'; -import PropTypes from 'prop-types'; import { Button } from '@patternfly/react-core'; import { CopyIcon } from '@patternfly/react-icons'; import useRequest, { useDismissableError } from 'hooks/useRequest'; @@ -60,13 +59,4 @@ function CopyButton({ ); } -CopyButton.propTypes = { - copyItem: PropTypes.func.isRequired, - onCopyStart: PropTypes.func.isRequired, - onCopyFinish: PropTypes.func.isRequired, - errorMessage: PropTypes.string.isRequired, - isDisabled: PropTypes.bool, - ouiaId: PropTypes.string, -}; - export default CopyButton; diff --git a/awx/ui/src/components/CredentialChip/CredentialChip.js b/awx/ui/src/components/CredentialChip/CredentialChip.js index 735751bbe..67bf41c0f 100644 --- a/awx/ui/src/components/CredentialChip/CredentialChip.js +++ b/awx/ui/src/components/CredentialChip/CredentialChip.js @@ -2,7 +2,6 @@ import React from 'react'; import { useLingui } from '@lingui/react/macro'; import { Chip } from '@patternfly/react-core'; -import { Credential } from 'types'; import { toTitleCase } from 'util/strings'; function CredentialChip({ credential, ...props }) { @@ -32,9 +31,6 @@ function CredentialChip({ credential, ...props }) { ); } -CredentialChip.propTypes = { - credential: Credential.isRequired, -}; export { CredentialChip as _CredentialChip }; export default CredentialChip; diff --git a/awx/ui/src/components/DataListToolbar/DataListToolbar.js b/awx/ui/src/components/DataListToolbar/DataListToolbar.js index ffc1af1a8..a67a85bd8 100644 --- a/awx/ui/src/components/DataListToolbar/DataListToolbar.js +++ b/awx/ui/src/components/DataListToolbar/DataListToolbar.js @@ -1,5 +1,4 @@ import React, { useEffect, useMemo, useState } from 'react'; -import PropTypes from 'prop-types'; import styled from 'styled-components'; import { useLingui } from '@lingui/react/macro'; import { @@ -20,7 +19,6 @@ import { AngleRightIcon, SearchIcon, } from '@patternfly/react-icons'; -import { SearchColumns, SortColumns, QSConfig, SearchableKeys } from 'types'; import { KebabifiedProvider } from 'contexts/Kebabified'; import ExpandCollapse from '../ExpandCollapse'; import Search from '../Search'; @@ -208,26 +206,4 @@ function DataListToolbar({ ); } -DataListToolbar.propTypes = { - itemCount: PropTypes.number, - clearAllFilters: PropTypes.func, - qsConfig: QSConfig.isRequired, - searchColumns: SearchColumns.isRequired, - searchableKeys: SearchableKeys, - relatedSearchableKeys: PropTypes.arrayOf(PropTypes.string), - sortColumns: SortColumns, - isAllSelected: PropTypes.bool, - isCompact: PropTypes.bool, - onCompact: PropTypes.func, - onExpand: PropTypes.func, - onSearch: PropTypes.func, - onReplaceSearch: PropTypes.func, - onSelectAll: PropTypes.func, - onSort: PropTypes.func, - additionalControls: PropTypes.arrayOf(PropTypes.node), - enableNegativeFiltering: PropTypes.bool, - enableRelatedFuzzyFiltering: PropTypes.bool, - advancedSearchDisabled: PropTypes.bool, -}; - export default DataListToolbar; diff --git a/awx/ui/src/components/DeleteButton/DeleteButton.js b/awx/ui/src/components/DeleteButton/DeleteButton.js index 0b3610a51..5467ece47 100644 --- a/awx/ui/src/components/DeleteButton/DeleteButton.js +++ b/awx/ui/src/components/DeleteButton/DeleteButton.js @@ -1,5 +1,4 @@ import React, { useState } from 'react'; -import PropTypes from 'prop-types'; import { useLingui } from '@lingui/react/macro'; @@ -151,8 +150,4 @@ function DeleteButton({ ); } -DeleteButton.propTypes = { - ouiaId: PropTypes.string, -}; - export default DeleteButton; diff --git a/awx/ui/src/components/DetailList/CodeDetail.js b/awx/ui/src/components/DetailList/CodeDetail.js index d1f66d369..734eb1bbb 100644 --- a/awx/ui/src/components/DetailList/CodeDetail.js +++ b/awx/ui/src/components/DetailList/CodeDetail.js @@ -1,13 +1,4 @@ import React from 'react'; -import { - arrayOf, - oneOf, - oneOfType, - node, - number, - shape, - string, -} from 'prop-types'; import { TextListItemVariants } from '@patternfly/react-core'; import { DetailName, DetailValue } from './Detail'; import CodeEditor from '../CodeEditor'; @@ -64,12 +55,4 @@ function CodeDetail({ ); } -CodeDetail.propTypes = { - value: oneOfType([shape({}), arrayOf(string), string]).isRequired, - label: node.isRequired, - dataCy: string, - helpText: string, - rows: oneOfType([number, string]), - mode: oneOf(['json', 'javascript', 'yaml', 'jinja2']).isRequired, -}; export default CodeDetail; diff --git a/awx/ui/src/components/DetailList/DeletedDetail.js b/awx/ui/src/components/DetailList/DeletedDetail.js index 43f5d92df..f2689c97e 100644 --- a/awx/ui/src/components/DetailList/DeletedDetail.js +++ b/awx/ui/src/components/DetailList/DeletedDetail.js @@ -1,7 +1,6 @@ import React from 'react'; import { useLingui } from '@lingui/react/macro'; -import { node } from 'prop-types'; import styled from 'styled-components'; import _Detail from './Detail'; @@ -23,8 +22,4 @@ function DeletedDetail({ label, dataCy, helpText }) { ); } -DeletedDetail.propTypes = { - label: node.isRequired, -}; - export default DeletedDetail; diff --git a/awx/ui/src/components/DetailList/Detail.js b/awx/ui/src/components/DetailList/Detail.js index b7beeac7b..c1f39bf01 100644 --- a/awx/ui/src/components/DetailList/Detail.js +++ b/awx/ui/src/components/DetailList/Detail.js @@ -1,6 +1,5 @@ import React from 'react'; -import { oneOfType, node, bool, string } from 'prop-types'; import { TextListItem, TextListItemVariants } from '@patternfly/react-core'; import styled from 'styled-components'; import Popover from '../Popover'; @@ -82,13 +81,6 @@ const Detail = ({ ); }; -Detail.propTypes = { - label: node.isRequired, - value: node, - fullWidth: bool, - alwaysVisible: bool, - helpText: oneOfType([string, node]), -}; export default Detail; export { DetailName }; export { DetailValue }; diff --git a/awx/ui/src/components/DetailList/DetailBadge.js b/awx/ui/src/components/DetailList/DetailBadge.js index 1482ae4ad..fd8313dc0 100644 --- a/awx/ui/src/components/DetailList/DetailBadge.js +++ b/awx/ui/src/components/DetailList/DetailBadge.js @@ -1,5 +1,4 @@ import React from 'react'; -import { node } from 'prop-types'; import styled from 'styled-components'; import { Badge } from '@patternfly/react-core'; @@ -19,9 +18,5 @@ function DetailBadge({ label, helpText, content, dataCy = null }) { /> ); } -DetailBadge.propTypes = { - label: node.isRequired, - content: node.isRequired, -}; export default DetailBadge; diff --git a/awx/ui/src/components/DetailList/UserDateDetail.js b/awx/ui/src/components/DetailList/UserDateDetail.js index b0e54eee3..5dff7ad87 100644 --- a/awx/ui/src/components/DetailList/UserDateDetail.js +++ b/awx/ui/src/components/DetailList/UserDateDetail.js @@ -1,10 +1,8 @@ import React from 'react'; -import { node, string } from 'prop-types'; import { Trans } from '@lingui/react/macro'; import { Link } from 'react-router-dom'; import styled from 'styled-components'; import { formatDateString } from 'util/dates'; -import { SummaryFieldUser } from 'types'; import _Detail from './Detail'; const Detail = styled(_Detail)` @@ -30,9 +28,4 @@ function UserDateDetail({ label, date, user = null }) { /> ); } -UserDateDetail.propTypes = { - label: node.isRequired, - date: string.isRequired, - user: SummaryFieldUser, -}; export default UserDateDetail; diff --git a/awx/ui/src/components/DisassociateButton/DisassociateButton.js b/awx/ui/src/components/DisassociateButton/DisassociateButton.js index df4a2e85d..b1ee1c778 100644 --- a/awx/ui/src/components/DisassociateButton/DisassociateButton.js +++ b/awx/ui/src/components/DisassociateButton/DisassociateButton.js @@ -1,13 +1,4 @@ import React, { useState, useEffect, useContext } from 'react'; -import { - arrayOf, - func, - shape, - string, - oneOfType, - number, - node, -} from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Button, Tooltip, DropdownItem } from '@patternfly/react-core'; @@ -167,24 +158,4 @@ function DisassociateButton({ ); } -DisassociateButton.propTypes = { - itemsToDisassociate: oneOfType([ - arrayOf( - shape({ - id: number.isRequired, - name: string.isRequired, - }) - ), - arrayOf( - shape({ - id: number.isRequired, - hostname: string.isRequired, - }) - ), - ]), - modalNote: node, - modalTitle: string, - onDisassociate: func.isRequired, -}; - export default DisassociateButton; diff --git a/awx/ui/src/components/ErrorDetail/ErrorDetail.js b/awx/ui/src/components/ErrorDetail/ErrorDetail.js index 3dae8b2bf..eefd52247 100644 --- a/awx/ui/src/components/ErrorDetail/ErrorDetail.js +++ b/awx/ui/src/components/ErrorDetail/ErrorDetail.js @@ -1,5 +1,4 @@ import React, { useState } from 'react'; -import PropTypes from 'prop-types'; import styled from 'styled-components'; import { useLingui } from '@lingui/react/macro'; @@ -98,7 +97,4 @@ function ErrorDetail({ error = null }) { ); } -ErrorDetail.propTypes = { - error: PropTypes.instanceOf(Error), -}; export default ErrorDetail; diff --git a/awx/ui/src/components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.js b/awx/ui/src/components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.js index 5af2c8f4d..f8bd586d7 100644 --- a/awx/ui/src/components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.js +++ b/awx/ui/src/components/ExecutionEnvironmentDetail/ExecutionEnvironmentDetail.js @@ -1,12 +1,10 @@ import React from 'react'; -import { bool, string } from 'prop-types'; import { Link } from 'react-router-dom'; import { Trans, useLingui } from '@lingui/react/macro'; import { Popover, Tooltip } from '@patternfly/react-core'; import styled from 'styled-components'; import { ExclamationTriangleIcon as PFExclamationTriangleIcon } from '@patternfly/react-icons'; -import { ExecutionEnvironment } from 'types'; import getDocsBaseUrl from 'util/getDocsBaseUrl'; import { useConfig } from 'contexts/Config'; import { Detail } from '../DetailList'; @@ -128,13 +126,4 @@ function ExecutionEnvironmentDetail({ return null; } -ExecutionEnvironmentDetail.propTypes = { - executionEnvironment: ExecutionEnvironment, - isDefaultEnvironment: bool, - virtualEnvironment: string, - verifyMissingVirtualEnv: bool, - helpText: string, - dataCy: string, -}; - export default ExecutionEnvironmentDetail; diff --git a/awx/ui/src/components/ExpandCollapse/ExpandCollapse.js b/awx/ui/src/components/ExpandCollapse/ExpandCollapse.js index fdf78c3e5..b05e6a768 100644 --- a/awx/ui/src/components/ExpandCollapse/ExpandCollapse.js +++ b/awx/ui/src/components/ExpandCollapse/ExpandCollapse.js @@ -1,5 +1,4 @@ import React from 'react'; -import PropTypes from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { @@ -61,10 +60,4 @@ function ExpandCollapse({ isCompact = true, onCompact, onExpand }) { ); } -ExpandCollapse.propTypes = { - onCompact: PropTypes.func.isRequired, - onExpand: PropTypes.func.isRequired, - isCompact: PropTypes.bool, -}; - export default ExpandCollapse; diff --git a/awx/ui/src/components/FieldWithPrompt/FieldWithPrompt.js b/awx/ui/src/components/FieldWithPrompt/FieldWithPrompt.js index baffc6913..0c3d32b74 100644 --- a/awx/ui/src/components/FieldWithPrompt/FieldWithPrompt.js +++ b/awx/ui/src/components/FieldWithPrompt/FieldWithPrompt.js @@ -1,5 +1,4 @@ import React from 'react'; -import { bool, node, string } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import styled from 'styled-components'; @@ -54,13 +53,4 @@ function FieldWithPrompt({ ); } -FieldWithPrompt.propTypes = { - fieldId: string.isRequired, - isRequired: bool, - label: string.isRequired, - promptId: string.isRequired, - promptName: string.isRequired, - tooltip: node, -}; - export default FieldWithPrompt; diff --git a/awx/ui/src/components/FormActionGroup/FormActionGroup.js b/awx/ui/src/components/FormActionGroup/FormActionGroup.js index 4cfd0e8d6..8e03e470a 100644 --- a/awx/ui/src/components/FormActionGroup/FormActionGroup.js +++ b/awx/ui/src/components/FormActionGroup/FormActionGroup.js @@ -1,5 +1,4 @@ import React from 'react'; -import PropTypes from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { ActionGroup, Button } from '@patternfly/react-core'; @@ -35,10 +34,4 @@ const FormActionGroup = ({ onCancel, onSubmit, submitDisabled = false }) => { ); }; -FormActionGroup.propTypes = { - onCancel: PropTypes.func.isRequired, - onSubmit: PropTypes.func.isRequired, - submitDisabled: PropTypes.bool, -}; - export default FormActionGroup; diff --git a/awx/ui/src/components/FormField/ArrayTextField.js b/awx/ui/src/components/FormField/ArrayTextField.js index 00ad86ca6..659a9bfee 100644 --- a/awx/ui/src/components/FormField/ArrayTextField.js +++ b/awx/ui/src/components/FormField/ArrayTextField.js @@ -1,5 +1,4 @@ import React from 'react'; -import PropTypes from 'prop-types'; import { useField } from 'formik'; import { FormGroup, TextArea } from '@patternfly/react-core'; import Popover from '../Popover'; @@ -50,15 +49,4 @@ function ArrayTextField({ ); } -ArrayTextField.propTypes = { - helperText: PropTypes.string, - id: PropTypes.string.isRequired, - name: PropTypes.string.isRequired, - label: PropTypes.oneOfType([PropTypes.object, PropTypes.string]).isRequired, - validate: PropTypes.func, - isRequired: PropTypes.bool, - tooltip: PropTypes.node, - tooltipMaxWidth: PropTypes.string, -}; - export default ArrayTextField; diff --git a/awx/ui/src/components/FormField/CheckboxField.js b/awx/ui/src/components/FormField/CheckboxField.js index abe2f5333..e30448b57 100644 --- a/awx/ui/src/components/FormField/CheckboxField.js +++ b/awx/ui/src/components/FormField/CheckboxField.js @@ -1,5 +1,4 @@ import React from 'react'; -import { string, func, node } from 'prop-types'; import { useField } from 'formik'; import { Checkbox } from '@patternfly/react-core'; import Popover from '../Popover'; @@ -36,11 +35,4 @@ function CheckboxField({ /> ); } -CheckboxField.propTypes = { - id: string.isRequired, - name: string.isRequired, - label: string.isRequired, - validate: func, - tooltip: node, -}; export default CheckboxField; diff --git a/awx/ui/src/components/FormField/FormField.js b/awx/ui/src/components/FormField/FormField.js index af0468f62..5069a619a 100644 --- a/awx/ui/src/components/FormField/FormField.js +++ b/awx/ui/src/components/FormField/FormField.js @@ -1,6 +1,5 @@ import React from 'react'; -import PropTypes from 'prop-types'; import { useField } from 'formik'; import { FormGroup, TextInput, TextArea } from '@patternfly/react-core'; import Popover from '../Popover'; @@ -73,16 +72,4 @@ function FormField({ ); } -FormField.propTypes = { - helperText: PropTypes.string, - id: PropTypes.string.isRequired, - name: PropTypes.string.isRequired, - label: PropTypes.oneOfType([PropTypes.object, PropTypes.string]).isRequired, - type: PropTypes.string, - validate: PropTypes.func, - isRequired: PropTypes.bool, - tooltip: PropTypes.node, - tooltipMaxWidth: PropTypes.string, -}; - export default FormField; diff --git a/awx/ui/src/components/FormField/PasswordField.js b/awx/ui/src/components/FormField/PasswordField.js index 2133e8ab9..1f8975817 100644 --- a/awx/ui/src/components/FormField/PasswordField.js +++ b/awx/ui/src/components/FormField/PasswordField.js @@ -1,5 +1,4 @@ import React from 'react'; -import PropTypes from 'prop-types'; import { useField } from 'formik'; import { FormGroup, InputGroup } from '@patternfly/react-core'; import Popover from '../Popover'; @@ -41,13 +40,4 @@ function PasswordField({ ); } -PasswordField.propTypes = { - id: PropTypes.string.isRequired, - name: PropTypes.string.isRequired, - label: PropTypes.string.isRequired, - validate: PropTypes.func, - isRequired: PropTypes.bool, - isDisabled: PropTypes.bool, -}; - export default PasswordField; diff --git a/awx/ui/src/components/FormField/PasswordInput.js b/awx/ui/src/components/FormField/PasswordInput.js index dd7bcb92e..be8ec1184 100644 --- a/awx/ui/src/components/FormField/PasswordInput.js +++ b/awx/ui/src/components/FormField/PasswordInput.js @@ -1,5 +1,4 @@ import React, { useState } from 'react'; -import PropTypes from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { useField } from 'formik'; @@ -66,13 +65,4 @@ function PasswordInput({ ); } -PasswordInput.propTypes = { - autocomplete: PropTypes.string, - id: PropTypes.string.isRequired, - name: PropTypes.string.isRequired, - validate: PropTypes.func, - isRequired: PropTypes.bool, - isDisabled: PropTypes.bool, -}; - export default PasswordInput; diff --git a/awx/ui/src/components/HostForm/HostForm.js b/awx/ui/src/components/HostForm/HostForm.js index b2f5e19e2..043cc051e 100644 --- a/awx/ui/src/components/HostForm/HostForm.js +++ b/awx/ui/src/components/HostForm/HostForm.js @@ -1,5 +1,4 @@ import React, { useCallback } from 'react'; -import { bool, func, shape } from 'prop-types'; import { Formik, useField, useFormikContext } from 'formik'; import { useLingui } from '@lingui/react/macro'; import { Form, FormGroup, Tooltip } from '@patternfly/react-core'; @@ -136,14 +135,5 @@ const HostForm = ({ ); }; -HostForm.propTypes = { - handleCancel: func.isRequired, - handleSubmit: func.isRequired, - host: shape({}), - isInventoryVisible: bool, - submitError: shape({}), - disableInventoryLookup: bool, -}; - export { HostForm as _HostForm }; export default HostForm; diff --git a/awx/ui/src/components/InstanceGroupLabels/InstanceGroupLabels.js b/awx/ui/src/components/InstanceGroupLabels/InstanceGroupLabels.js index f6fe77fda..e9a06fbcf 100644 --- a/awx/ui/src/components/InstanceGroupLabels/InstanceGroupLabels.js +++ b/awx/ui/src/components/InstanceGroupLabels/InstanceGroupLabels.js @@ -1,5 +1,4 @@ import React from 'react'; -import { arrayOf, bool, number, shape, string } from 'prop-types'; import { Label, LabelGroup } from '@patternfly/react-core'; import { Link } from 'react-router-dom'; @@ -38,10 +37,4 @@ function InstanceGroupLabels({ labels, isLinkable = false }) { ); } -InstanceGroupLabels.propTypes = { - labels: arrayOf(shape({ id: number.isRequired, name: string.isRequired })) - .isRequired, - isLinkable: bool, -}; - export default InstanceGroupLabels; diff --git a/awx/ui/src/components/JobList/JobListCancelButton.js b/awx/ui/src/components/JobList/JobListCancelButton.js index 75df44113..0f5f329c8 100644 --- a/awx/ui/src/components/JobList/JobListCancelButton.js +++ b/awx/ui/src/components/JobList/JobListCancelButton.js @@ -1,10 +1,8 @@ import React, { useContext, useEffect, useState } from 'react'; import { Plural, useLingui } from '@lingui/react/macro'; -import { arrayOf, func } from 'prop-types'; import { Button, DropdownItem, Tooltip } from '@patternfly/react-core'; import { KebabifiedContext } from 'contexts/Kebabified'; import { isJobRunning } from 'util/jobs'; -import { Job } from 'types'; import AlertModal from '../AlertModal'; function cannotCancelBecausePermissions(job) { @@ -183,9 +181,4 @@ function JobListCancelButton({ jobsToCancel = [], onCancel = () => {} }) { ); } -JobListCancelButton.propTypes = { - jobsToCancel: arrayOf(Job), - onCancel: func, -}; - export default JobListCancelButton; diff --git a/awx/ui/src/components/LabelSelect/LabelSelect.js b/awx/ui/src/components/LabelSelect/LabelSelect.js index 016e56126..d8eb0947c 100644 --- a/awx/ui/src/components/LabelSelect/LabelSelect.js +++ b/awx/ui/src/components/LabelSelect/LabelSelect.js @@ -1,5 +1,4 @@ import React, { useState, useEffect } from 'react'; -import { func, arrayOf, number, shape, string, oneOfType } from 'prop-types'; import { Chip, ChipGroup, @@ -142,15 +141,4 @@ function LabelSelect({ ); } -LabelSelect.propTypes = { - value: arrayOf( - shape({ - id: oneOfType([number, string]).isRequired, - name: string.isRequired, - }) - ).isRequired, - placeholder: string, - onChange: func.isRequired, - onError: func.isRequired, -}; export default LabelSelect; diff --git a/awx/ui/src/components/LaunchButton/LaunchButton.js b/awx/ui/src/components/LaunchButton/LaunchButton.js index f86888987..5536815dc 100644 --- a/awx/ui/src/components/LaunchButton/LaunchButton.js +++ b/awx/ui/src/components/LaunchButton/LaunchButton.js @@ -1,6 +1,5 @@ import React, { useState, useRef, useEffect } from 'react'; import { useNavigate } from 'react-router-dom-v5-compat'; -import { number, shape } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { AdHocCommandsAPI, @@ -257,10 +256,4 @@ function LaunchButton({ resource, children }) { ); } -LaunchButton.propTypes = { - resource: shape({ - id: number.isRequired, - }).isRequired, -}; - export default LaunchButton; diff --git a/awx/ui/src/components/LaunchPrompt/steps/SurveyStep.js b/awx/ui/src/components/LaunchPrompt/steps/SurveyStep.js index 3d9cbcedd..113999453 100644 --- a/awx/ui/src/components/LaunchPrompt/steps/SurveyStep.js +++ b/awx/ui/src/components/LaunchPrompt/steps/SurveyStep.js @@ -16,7 +16,6 @@ import { integer, combine, } from 'util/validators'; -import { Survey } from 'types'; import FormField from '../../FormField'; import Popover from '../../Popover'; @@ -45,9 +44,6 @@ function SurveyStep({ surveyConfig }) { ); } -SurveyStep.propTypes = { - surveyConfig: Survey.isRequired, -}; function TextField({ question }) { const validators = [ diff --git a/awx/ui/src/components/ListHeader/ListHeader.js b/awx/ui/src/components/ListHeader/ListHeader.js index 9ae5a2fd1..81fe323b9 100644 --- a/awx/ui/src/components/ListHeader/ListHeader.js +++ b/awx/ui/src/components/ListHeader/ListHeader.js @@ -1,6 +1,5 @@ import React, { useState } from 'react'; -import PropTypes from 'prop-types'; import { useLocation } from 'react-router-dom'; import { useNavigate } from 'react-router-dom-v5-compat'; import styled from 'styled-components'; @@ -12,7 +11,6 @@ import { removeParams, updateQueryString, } from 'util/qs'; -import { QSConfig, SearchColumns, SortColumns, SearchableKeys } from 'types'; import DataListToolbar from '../DataListToolbar'; const EmptyStateControlsWrapper = styled.div` @@ -130,14 +128,4 @@ function ListHeader({ ); } -ListHeader.propTypes = { - itemCount: PropTypes.number.isRequired, - qsConfig: QSConfig.isRequired, - searchColumns: SearchColumns.isRequired, - searchableKeys: SearchableKeys, - relatedSearchableKeys: PropTypes.arrayOf(PropTypes.string), - sortColumns: SortColumns, - renderToolbar: PropTypes.func, -}; - export default ListHeader; diff --git a/awx/ui/src/components/Lookup/ApplicationLookup.js b/awx/ui/src/components/Lookup/ApplicationLookup.js index 3a14fde85..af5a7274c 100644 --- a/awx/ui/src/components/Lookup/ApplicationLookup.js +++ b/awx/ui/src/components/Lookup/ApplicationLookup.js @@ -1,10 +1,8 @@ import React, { useCallback, useEffect } from 'react'; -import { func, node, string } from 'prop-types'; import { useLocation } from 'react-router-dom'; import { useLingui } from '@lingui/react/macro'; import { FormGroup } from '@patternfly/react-core'; import { ApplicationsAPI } from 'api'; -import { Application } from 'types'; import { getSearchableKeys } from 'components/PaginatedTable'; import { getQSConfig, parseQueryString } from 'util/qs'; import useRequest from 'hooks/useRequest'; @@ -144,12 +142,5 @@ function ApplicationLookup({ ); } -ApplicationLookup.propTypes = { - label: node.isRequired, - onChange: func.isRequired, - value: Application, - validate: func, - fieldName: string, -}; export default ApplicationLookup; diff --git a/awx/ui/src/components/Lookup/CredentialLookup.js b/awx/ui/src/components/Lookup/CredentialLookup.js index 8b6960cfa..8ae4c1092 100644 --- a/awx/ui/src/components/Lookup/CredentialLookup.js +++ b/awx/ui/src/components/Lookup/CredentialLookup.js @@ -1,19 +1,9 @@ import React, { useCallback, useEffect } from 'react'; import { useLocation } from 'react-router-dom-v5-compat'; -import { - arrayOf, - bool, - func, - node, - number, - string, - oneOfType, -} from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { FormGroup } from '@patternfly/react-core'; import { CredentialsAPI } from 'api'; -import { Credential } from 'types'; import { getSearchableKeys } from 'components/PaginatedTable'; import { getQSConfig, parseQueryString, mergeParams } from 'util/qs'; import useAutoPopulateLookup from 'hooks/useAutoPopulateLookup'; @@ -231,43 +221,5 @@ function CredentialLookup({ ); } -function idOrKind(props, propName, componentName) { - let error; - // credentialTypeKind formerly defaulted to '' via defaultProps, which React - // applied to the element's props BEFORE running PropTypes — so this validator - // always saw a present empty string and never fired (callers may pass - // credentialTypeNamespace instead of id/kind). Default params don't reach - // PropTypes, so treat an omitted/undefined value as that former '' default to - // preserve behavior. - const kindValue = - props.credentialTypeKind === undefined ? '' : props.credentialTypeKind; - if ( - !Object.prototype.hasOwnProperty.call(props, 'credentialTypeId') && - typeof kindValue !== 'string' - ) { - error = new Error( - `Invalid prop '${propName}' '${props[propName]}' supplied to '${componentName}'.` - ); - } - return error; -} - -CredentialLookup.propTypes = { - credentialTypeId: oneOfType([number, string]), - credentialTypeKind: idOrKind, - helperTextInvalid: node, - isValid: bool, - label: string.isRequired, - multiple: bool, - onBlur: func, - onChange: func.isRequired, - required: bool, - value: oneOfType([Credential, arrayOf(Credential)]), - isDisabled: bool, - autoPopulate: bool, - validate: func, - fieldName: string, -}; - export { CredentialLookup as _CredentialLookup }; export default CredentialLookup; diff --git a/awx/ui/src/components/Lookup/ExecutionEnvironmentLookup.js b/awx/ui/src/components/Lookup/ExecutionEnvironmentLookup.js index 5bdf399ab..24f62f312 100644 --- a/awx/ui/src/components/Lookup/ExecutionEnvironmentLookup.js +++ b/awx/ui/src/components/Lookup/ExecutionEnvironmentLookup.js @@ -1,11 +1,9 @@ import React, { useCallback, useEffect } from 'react'; -import { string, func, bool, oneOfType, number } from 'prop-types'; import { useLocation } from 'react-router-dom'; import { useLingui } from '@lingui/react/macro'; import { FormGroup, Tooltip } from '@patternfly/react-core'; import { ExecutionEnvironmentsAPI, ProjectsAPI } from 'api'; import { getSearchableKeys } from 'components/PaginatedTable'; -import { ExecutionEnvironment } from 'types'; import { getQSConfig, parseQueryString, mergeParams } from 'util/qs'; import useRequest from 'hooks/useRequest'; import Popover from '../Popover'; @@ -242,16 +240,4 @@ function ExecutionEnvironmentLookup({ ); } -ExecutionEnvironmentLookup.propTypes = { - id: string, - value: ExecutionEnvironment, - popoverContent: string, - onChange: func.isRequired, - projectId: oneOfType([number, string]), - organizationId: oneOfType([number, string]), - validate: func, - fieldName: string, - overrideLabel: bool, -}; - export default ExecutionEnvironmentLookup; diff --git a/awx/ui/src/components/Lookup/HostFilterLookup.js b/awx/ui/src/components/Lookup/HostFilterLookup.js index 72a2bf5c8..652bb8182 100644 --- a/awx/ui/src/components/Lookup/HostFilterLookup.js +++ b/awx/ui/src/components/Lookup/HostFilterLookup.js @@ -1,7 +1,6 @@ import React, { useState, useEffect, useCallback } from 'react'; import { useLocation } from 'react-router-dom'; import { useNavigate } from 'react-router-dom-v5-compat'; -import { number, func, bool, string } from 'prop-types'; import styled from 'styled-components'; import { useLingui } from '@lingui/react/macro'; @@ -456,13 +455,4 @@ function HostFilterLookup({ ); } -HostFilterLookup.propTypes = { - isValid: bool, - onBlur: func, - onChange: func, - organizationId: number, - value: string, - enableNegativeFiltering: bool, - enableRelatedFuzzyFiltering: bool, -}; export default HostFilterLookup; diff --git a/awx/ui/src/components/Lookup/InstanceGroupsLookup.js b/awx/ui/src/components/Lookup/InstanceGroupsLookup.js index 3bacb1303..89795d227 100644 --- a/awx/ui/src/components/Lookup/InstanceGroupsLookup.js +++ b/awx/ui/src/components/Lookup/InstanceGroupsLookup.js @@ -1,10 +1,8 @@ import React, { useCallback, useEffect } from 'react'; -import { arrayOf, string, func, bool } from 'prop-types'; import { useLocation } from 'react-router-dom-v5-compat'; import { Trans, useLingui } from '@lingui/react/macro'; import { FormGroup } from '@patternfly/react-core'; import { InstanceGroupsAPI } from 'api'; -import { InstanceGroup } from 'types'; import { getSearchableKeys } from 'components/PaginatedTable'; import { getQSConfig, parseQueryString } from 'util/qs'; import useRequest from 'hooks/useRequest'; @@ -158,15 +156,4 @@ function InstanceGroupsLookup({ ); } -InstanceGroupsLookup.propTypes = { - id: string, - value: arrayOf(InstanceGroup).isRequired, - tooltip: string, - onChange: func.isRequired, - className: string, - required: bool, - validate: func, - fieldName: string, -}; - export default InstanceGroupsLookup; diff --git a/awx/ui/src/components/Lookup/InventoryLookup.js b/awx/ui/src/components/Lookup/InventoryLookup.js index b68f468ee..e6c10ca3b 100644 --- a/awx/ui/src/components/Lookup/InventoryLookup.js +++ b/awx/ui/src/components/Lookup/InventoryLookup.js @@ -1,9 +1,7 @@ import React, { useCallback, useEffect } from 'react'; -import { func, bool, string, number, oneOfType, arrayOf } from 'prop-types'; import { useLocation } from 'react-router-dom-v5-compat'; import { useLingui } from '@lingui/react/macro'; import { InventoriesAPI } from 'api'; -import { Inventory } from 'types'; import useRequest from 'hooks/useRequest'; import useAutoPopulateLookup from 'hooks/useAutoPopulateLookup'; import { getQSConfig, parseQueryString, mergeParams } from 'util/qs'; @@ -252,17 +250,4 @@ function InventoryLookup({ ); } -InventoryLookup.propTypes = { - autoPopulate: bool, - excludeIds: arrayOf(number), - fieldId: string, - fieldName: string, - hideAdvancedInventories: bool, - isDisabled: bool, - onChange: func.isRequired, - required: bool, - validate: func, - value: oneOfType([Inventory, arrayOf(Inventory)]), -}; - export default InventoryLookup; diff --git a/awx/ui/src/components/Lookup/Lookup.js b/awx/ui/src/components/Lookup/Lookup.js index bf64007e9..a8be6fab7 100644 --- a/awx/ui/src/components/Lookup/Lookup.js +++ b/awx/ui/src/components/Lookup/Lookup.js @@ -1,15 +1,4 @@ import React, { useReducer, useEffect, useState } from 'react'; -import { - string, - bool, - arrayOf, - func, - number, - oneOfType, - shape, - node, - object, -} from 'prop-types'; import { useLocation, useNavigate } from 'react-router-dom-v5-compat'; import { useField } from 'formik'; import { SearchIcon } from '@patternfly/react-icons'; @@ -24,7 +13,6 @@ import { import { useLingui } from '@lingui/react/macro'; import styled from 'styled-components'; import useDebounce from 'hooks/useDebounce'; -import { QSConfig } from 'types'; import ChipGroup from '../ChipGroup'; import reducer, { initReducer } from './shared/reducer'; @@ -225,38 +213,5 @@ function Lookup({ ); } -const Item = shape({ - id: number.isRequired, -}); -const InstanceItem = shape({ - id: number.isRequired, - hostname: string.isRequired, -}); - -Lookup.propTypes = { - id: string, - header: string, - modalDescription: oneOfType([string, node]), - onChange: func.isRequired, - onUpdate: func, - value: oneOfType([ - Item, - arrayOf(Item), - object, - InstanceItem, - arrayOf(InstanceItem), - ]), - multiple: bool, - required: bool, - onBlur: func, - qsConfig: QSConfig.isRequired, - renderItemChip: func, - renderOptionsList: func.isRequired, - fieldName: string.isRequired, - validate: func, - onDebounce: func, - isDisabled: bool, -}; - export { Lookup as _Lookup }; export default Lookup; diff --git a/awx/ui/src/components/Lookup/MultiCredentialsLookup.js b/awx/ui/src/components/Lookup/MultiCredentialsLookup.js index 614ea2679..29513fcb8 100644 --- a/awx/ui/src/components/Lookup/MultiCredentialsLookup.js +++ b/awx/ui/src/components/Lookup/MultiCredentialsLookup.js @@ -1,6 +1,5 @@ import React, { useState, useCallback, useEffect } from 'react'; import { useLocation, useNavigate } from 'react-router-dom-v5-compat'; -import PropTypes from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { ToolbarItem, Alert } from '@patternfly/react-core'; import { CredentialsAPI, CredentialTypesAPI } from 'api'; @@ -244,21 +243,5 @@ function MultiCredentialsLookup({ ); } -MultiCredentialsLookup.propTypes = { - value: PropTypes.arrayOf( - PropTypes.shape({ - id: PropTypes.number, - name: PropTypes.string, - description: PropTypes.string, - kind: PropTypes.string, - clound: PropTypes.bool, - }) - ), - onChange: PropTypes.func.isRequired, - onError: PropTypes.func.isRequired, - validate: PropTypes.func, - fieldName: PropTypes.string, -}; - export { MultiCredentialsLookup as _MultiCredentialsLookup }; export default MultiCredentialsLookup; diff --git a/awx/ui/src/components/Lookup/OrganizationLookup.js b/awx/ui/src/components/Lookup/OrganizationLookup.js index 40b5ff660..0c551ba12 100644 --- a/awx/ui/src/components/Lookup/OrganizationLookup.js +++ b/awx/ui/src/components/Lookup/OrganizationLookup.js @@ -1,10 +1,8 @@ import React, { useCallback, useEffect } from 'react'; -import { node, func, bool, string } from 'prop-types'; import { useLocation } from 'react-router-dom-v5-compat'; import { useLingui } from '@lingui/react/macro'; import { FormGroup } from '@patternfly/react-core'; import { OrganizationsAPI } from 'api'; -import { Organization } from 'types'; import { getQSConfig, parseQueryString } from 'util/qs'; import { getSearchableKeys } from 'components/PaginatedTable'; import useRequest from 'hooks/useRequest'; @@ -159,19 +157,5 @@ function OrganizationLookup({ ); } -OrganizationLookup.propTypes = { - id: string, - helperTextInvalid: node, - isValid: bool, - onBlur: func, - onChange: func.isRequired, - required: bool, - value: Organization, - autoPopulate: bool, - isDisabled: bool, - validate: func, - fieldName: string, -}; - export { OrganizationLookup as _OrganizationLookup }; export default OrganizationLookup; diff --git a/awx/ui/src/components/Lookup/PeersLookup.js b/awx/ui/src/components/Lookup/PeersLookup.js index 481283509..2f8e012c2 100755 --- a/awx/ui/src/components/Lookup/PeersLookup.js +++ b/awx/ui/src/components/Lookup/PeersLookup.js @@ -1,10 +1,8 @@ import React, { useCallback, useEffect } from 'react'; -import { arrayOf, string, func, bool, shape } from 'prop-types'; import { useLocation } from 'react-router-dom-v5-compat'; import { useLingui } from '@lingui/react/macro'; import { FormGroup, Chip } from '@patternfly/react-core'; import { InstancesAPI } from 'api'; -import { Instance } from 'types'; import { getSearchableKeys } from 'components/PaginatedTable'; import { getQSConfig, parseQueryString, mergeParams } from 'util/qs'; import useRequest from 'hooks/useRequest'; @@ -173,20 +171,4 @@ function PeersLookup({ ); } -PeersLookup.propTypes = { - id: string, - value: arrayOf(Instance).isRequired, - tooltip: string, - onChange: func.isRequired, - className: string, - required: bool, - validate: func, - multiple: bool, - fieldName: string, - columns: arrayOf(Object), - formLabel: string, - instance_details: (Instance, shape({})), - typePeers: bool, -}; - export default PeersLookup; diff --git a/awx/ui/src/components/Lookup/ProjectLookup.js b/awx/ui/src/components/Lookup/ProjectLookup.js index 0decf071e..121a77403 100644 --- a/awx/ui/src/components/Lookup/ProjectLookup.js +++ b/awx/ui/src/components/Lookup/ProjectLookup.js @@ -1,10 +1,8 @@ import React, { useCallback, useEffect } from 'react'; -import { node, string, func, bool, object, oneOfType } from 'prop-types'; import { useLocation } from 'react-router-dom-v5-compat'; import { useLingui } from '@lingui/react/macro'; import { FormGroup } from '@patternfly/react-core'; import { ProjectsAPI } from 'api'; -import { Project } from 'types'; import useAutoPopulateLookup from 'hooks/useAutoPopulateLookup'; import useRequest from 'hooks/useRequest'; import { getSearchableKeys } from 'components/PaginatedTable'; @@ -178,19 +176,5 @@ function ProjectLookup({ ); } -ProjectLookup.propTypes = { - autoPopulate: bool, - helperTextInvalid: node, - isValid: bool, - onBlur: func, - onChange: func.isRequired, - required: bool, - tooltip: string, - value: oneOfType([Project, object]), - isOverrideDisabled: bool, - validate: func, - fieldName: string, -}; - export { ProjectLookup as _ProjectLookup }; export default ProjectLookup; diff --git a/awx/ui/src/components/MultiButtonToggle/MultiButtonToggle.js b/awx/ui/src/components/MultiButtonToggle/MultiButtonToggle.js index 2b8c8da7f..d5bfef1e6 100644 --- a/awx/ui/src/components/MultiButtonToggle/MultiButtonToggle.js +++ b/awx/ui/src/components/MultiButtonToggle/MultiButtonToggle.js @@ -1,5 +1,4 @@ import React from 'react'; -import { func, string } from 'prop-types'; import styled from 'styled-components'; import { Button } from '@patternfly/react-core'; import ButtonGroup from './ButtonGroup'; @@ -38,37 +37,4 @@ function MultiButtonToggle({ buttons, value, onChange, name }) { ); } -const buttonsPropType = { - isRequired: ({ buttons }) => { - if (!buttons) { - return new Error( - `The prop buttons is marked as required in MultiButtonToggle, but its value is '${buttons}'` - ); - } - // We expect this data structure to look like: - // [[value(unrestricted type), label(string)], [value(unrestricted type), label(string)], ...] - if ( - !Array.isArray(buttons) || - buttons.length < 2 || - buttons.reduce( - (prevVal, button) => prevVal || typeof button[1] !== 'string', - false - ) - ) { - return new Error( - `Invalid prop buttons supplied to MultiButtonToggle. Validation failed.` - ); - } - - return null; - }, -}; - -MultiButtonToggle.propTypes = { - buttons: buttonsPropType.isRequired, - value: string.isRequired, - onChange: func.isRequired, - name: string.isRequired, -}; - export default MultiButtonToggle; diff --git a/awx/ui/src/components/MultiSelect/TagMultiSelect.js b/awx/ui/src/components/MultiSelect/TagMultiSelect.js index 53ebbf3f4..eb4e159a7 100644 --- a/awx/ui/src/components/MultiSelect/TagMultiSelect.js +++ b/awx/ui/src/components/MultiSelect/TagMultiSelect.js @@ -1,5 +1,4 @@ import React, { useState } from 'react'; -import { func, string } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Select, SelectOption, SelectVariant } from '@patternfly/react-core'; import { arrayToString, stringToArray } from 'util/strings'; @@ -67,9 +66,4 @@ function TagMultiSelect({ onChange, value }) { ); } -TagMultiSelect.propTypes = { - onChange: func.isRequired, - value: string.isRequired, -}; - export default TagMultiSelect; diff --git a/awx/ui/src/components/NotificationList/NotificationList.js b/awx/ui/src/components/NotificationList/NotificationList.js index 9996e2a73..17c80e9c6 100644 --- a/awx/ui/src/components/NotificationList/NotificationList.js +++ b/awx/ui/src/components/NotificationList/NotificationList.js @@ -1,6 +1,5 @@ import React, { useEffect, useCallback, useState } from 'react'; import { useLocation } from 'react-router-dom'; -import { number, shape, bool } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { getQSConfig, parseQueryString } from 'util/qs'; @@ -258,11 +257,4 @@ function NotificationList({ ); } -NotificationList.propTypes = { - apiModel: shape({}).isRequired, - id: number.isRequired, - canToggleNotifications: bool.isRequired, - showApprovalsToggle: bool, -}; - export default NotificationList; diff --git a/awx/ui/src/components/NotificationList/NotificationListItem.js b/awx/ui/src/components/NotificationList/NotificationListItem.js index 7a9d53bb0..f18bbcdc5 100644 --- a/awx/ui/src/components/NotificationList/NotificationListItem.js +++ b/awx/ui/src/components/NotificationList/NotificationListItem.js @@ -1,5 +1,4 @@ import React from 'react'; -import { shape, number, string, bool, func } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; @@ -104,21 +103,4 @@ function NotificationListItem({ ); } -NotificationListItem.propTypes = { - notification: shape({ - id: number.isRequired, - name: string.isRequired, - notification_type: string.isRequired, - }).isRequired, - canToggleNotifications: bool.isRequired, - detailUrl: string.isRequired, - approvalsTurnedOn: bool, - errorTurnedOn: bool, - startedTurnedOn: bool, - successTurnedOn: bool, - toggleNotification: func.isRequired, - typeLabels: shape().isRequired, - showApprovalsToggle: bool, -}; - export default NotificationListItem; diff --git a/awx/ui/src/components/OptionsList/OptionsList.js b/awx/ui/src/components/OptionsList/OptionsList.js index 223496c80..b430a48ca 100644 --- a/awx/ui/src/components/OptionsList/OptionsList.js +++ b/awx/ui/src/components/OptionsList/OptionsList.js @@ -1,16 +1,6 @@ import React from 'react'; -import { - arrayOf, - shape, - bool, - func, - number, - string, - oneOfType, -} from 'prop-types'; import styled from 'styled-components'; import { useLingui } from '@lingui/react/macro'; -import { QSConfig, SearchColumns, SortColumns } from 'types'; import { SelectedList, DraggableSelectedList } from '../SelectedList'; import CheckboxListItem from '../CheckboxListItem'; import DataListToolbar from '../DataListToolbar'; @@ -121,29 +111,4 @@ function OptionsList({ ); } -const Item = shape({ - id: oneOfType([number, string]).isRequired, - name: string.isRequired, - url: string, -}); -const InstanceItem = shape({ - id: oneOfType([number, string]).isRequired, - hostname: string.isRequired, - url: string, -}); -OptionsList.propTypes = { - deselectItem: func.isRequired, - displayKey: string, - isSelectedDraggable: bool, - multiple: bool, - optionCount: number.isRequired, - options: oneOfType([arrayOf(Item), arrayOf(InstanceItem)]).isRequired, - qsConfig: QSConfig.isRequired, - renderItemChip: func, - searchColumns: SearchColumns, - selectItem: func.isRequired, - sortColumns: SortColumns, - value: oneOfType([arrayOf(Item), arrayOf(InstanceItem)]).isRequired, -}; - export default OptionsList; diff --git a/awx/ui/src/components/PaginatedTable/PaginatedTable.js b/awx/ui/src/components/PaginatedTable/PaginatedTable.js index d6758f6c2..b743ed7d2 100644 --- a/awx/ui/src/components/PaginatedTable/PaginatedTable.js +++ b/awx/ui/src/components/PaginatedTable/PaginatedTable.js @@ -2,7 +2,6 @@ // Modifications Copyright (c) 2023 Ctrl IQ, Inc. // import React, { useEffect } from 'react'; -import PropTypes from 'prop-types'; import { TableComposable, Tbody } from '@patternfly/react-table'; import { useLocation } from 'react-router-dom'; import { useNavigate } from 'react-router-dom-v5-compat'; @@ -10,7 +9,6 @@ import { useNavigate } from 'react-router-dom-v5-compat'; import { useLingui } from '@lingui/react/macro'; import { parseQueryString, updateQueryString } from 'util/qs'; -import { QSConfig, SearchColumns, SearchableKeys } from 'types'; import ListHeader from '../ListHeader'; import ContentEmpty from '../ContentEmpty'; import ContentError from '../ContentError'; @@ -187,28 +185,5 @@ function PaginatedTable({ ); } -const Item = PropTypes.shape({ - id: PropTypes.number.isRequired, - url: PropTypes.string.isRequired, - name: PropTypes.string, -}); - -PaginatedTable.propTypes = { - items: PropTypes.arrayOf(Item).isRequired, - itemCount: PropTypes.number.isRequired, - pluralizedItemName: PropTypes.string, - qsConfig: QSConfig.isRequired, - renderRow: PropTypes.func.isRequired, - toolbarSearchColumns: SearchColumns, - toolbarSearchableKeys: SearchableKeys, - toolbarRelatedSearchableKeys: PropTypes.arrayOf(PropTypes.string), - showPageSizeOptions: PropTypes.bool, - renderToolbar: PropTypes.func, - hasContentLoading: PropTypes.bool, - contentError: PropTypes.shape(), - clearSelected: PropTypes.func, - ouiaId: PropTypes.string, -}; - export { PaginatedTable as _PaginatedTable }; export default PaginatedTable; diff --git a/awx/ui/src/components/PaginatedTable/ToolbarAddButton.js b/awx/ui/src/components/PaginatedTable/ToolbarAddButton.js index 4a0e9fa3d..ca34ee5a2 100644 --- a/awx/ui/src/components/PaginatedTable/ToolbarAddButton.js +++ b/awx/ui/src/components/PaginatedTable/ToolbarAddButton.js @@ -1,5 +1,4 @@ import React from 'react'; -import { string, func } from 'prop-types'; import { Link } from 'react-router-dom'; import { Button, DropdownItem, Tooltip } from '@patternfly/react-core'; import CaretDownIcon from '@patternfly/react-icons/dist/js/icons/caret-down-icon'; @@ -60,9 +59,4 @@ function ToolbarAddButton({ ); } -ToolbarAddButton.propTypes = { - linkTo: string, - onClick: func, -}; - export default ToolbarAddButton; diff --git a/awx/ui/src/components/PaginatedTable/ToolbarDeleteButton.js b/awx/ui/src/components/PaginatedTable/ToolbarDeleteButton.js index 11ab33ff7..638582151 100644 --- a/awx/ui/src/components/PaginatedTable/ToolbarDeleteButton.js +++ b/awx/ui/src/components/PaginatedTable/ToolbarDeleteButton.js @@ -1,14 +1,4 @@ import React, { useContext, useEffect, useState } from 'react'; -import { - func, - bool, - node, - number, - string, - arrayOf, - shape, - checkPropTypes, -} from 'prop-types'; import styled from 'styled-components'; import { Alert, @@ -34,58 +24,6 @@ const Label = styled.span` } `; -const requiredField = (props) => { - const { name, username, image } = props; - if (!name && !username && !image) { - return new Error( - `One of 'name', 'username' or 'image' is required by ItemToDelete component.` - ); - } - if (name) { - checkPropTypes( - { - name: string, - }, - { name: props.name }, - 'prop', - 'ItemToDelete' - ); - } - if (username) { - checkPropTypes( - { - username: string, - }, - { username: props.username }, - 'prop', - 'ItemToDelete' - ); - } - if (image) { - checkPropTypes( - { - image: string, - }, - { image: props.image }, - 'prop', - 'ItemToDelete' - ); - } - return null; -}; - -const ItemToDelete = shape({ - id: number.isRequired, - name: requiredField, - username: requiredField, - image: requiredField, - summary_fields: shape({ - user_capabilities: shape({ - delete: bool.isRequired, - }).isRequired, - }).isRequired, -}); - function ToolbarDeleteButton({ itemsToDelete, pluralizedItemName = 'Items', @@ -304,12 +242,4 @@ function ToolbarDeleteButton({ ); } -ToolbarDeleteButton.propTypes = { - onDelete: func.isRequired, - itemsToDelete: arrayOf(ItemToDelete).isRequired, - pluralizedItemName: string, - warningMessage: node, - cannotDelete: func, -}; - export default ToolbarDeleteButton; diff --git a/awx/ui/src/components/PaginatedTable/ToolbarSyncSourceButton.js b/awx/ui/src/components/PaginatedTable/ToolbarSyncSourceButton.js index 16c81be59..c38f50fa5 100644 --- a/awx/ui/src/components/PaginatedTable/ToolbarSyncSourceButton.js +++ b/awx/ui/src/components/PaginatedTable/ToolbarSyncSourceButton.js @@ -1,5 +1,4 @@ import React from 'react'; -import { func } from 'prop-types'; import { Button, DropdownItem, Tooltip } from '@patternfly/react-core'; import { useLingui } from '@lingui/react/macro'; @@ -40,8 +39,4 @@ function ToolbarSyncSourceButton({ onClick = null }) { ); } -ToolbarSyncSourceButton.propTypes = { - onClick: func, -}; - export default ToolbarSyncSourceButton; diff --git a/awx/ui/src/components/Popover/Popover.js b/awx/ui/src/components/Popover/Popover.js index 3dceadd1d..d84d7bf97 100644 --- a/awx/ui/src/components/Popover/Popover.js +++ b/awx/ui/src/components/Popover/Popover.js @@ -1,5 +1,4 @@ import React from 'react'; -import { node, string } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Popover as PFPopover } from '@patternfly/react-core'; import { HelpIcon } from '@patternfly/react-icons'; @@ -48,12 +47,4 @@ function Popover({ ); } -Popover.propTypes = { - ariaLabel: string, - content: node, - header: node, - id: string, - maxWidth: string, -}; - export default Popover; diff --git a/awx/ui/src/components/PromptDetail/PromptDetail.js b/awx/ui/src/components/PromptDetail/PromptDetail.js index 1039cc785..f9a3069bc 100644 --- a/awx/ui/src/components/PromptDetail/PromptDetail.js +++ b/awx/ui/src/components/PromptDetail/PromptDetail.js @@ -1,5 +1,4 @@ import React from 'react'; -import { shape } from 'prop-types'; import { Trans, useLingui } from '@lingui/react/macro'; import { Link } from 'react-router-dom'; import styled from 'styled-components'; @@ -386,9 +385,4 @@ function PromptDetail({ ); } -PromptDetail.propTypes = { - resource: shape({}).isRequired, - launchConfig: shape({}), -}; - export default PromptDetail; diff --git a/awx/ui/src/components/ResourceAccessList/DeleteRoleConfirmationModal.js b/awx/ui/src/components/ResourceAccessList/DeleteRoleConfirmationModal.js index badc02286..bc5d0b7fb 100644 --- a/awx/ui/src/components/ResourceAccessList/DeleteRoleConfirmationModal.js +++ b/awx/ui/src/components/ResourceAccessList/DeleteRoleConfirmationModal.js @@ -1,10 +1,8 @@ import React from 'react'; -import { func, string } from 'prop-types'; import { Button } from '@patternfly/react-core'; import { useLingui } from '@lingui/react/macro'; -import { Role } from 'types'; import AlertModal from '../AlertModal'; function DeleteRoleConfirmationModal({ @@ -59,11 +57,4 @@ function DeleteRoleConfirmationModal({ ); } -DeleteRoleConfirmationModal.propTypes = { - role: Role.isRequired, - username: string, - onCancel: func.isRequired, - onConfirm: func.isRequired, -}; - export default DeleteRoleConfirmationModal; diff --git a/awx/ui/src/components/ResourceAccessList/ResourceAccessListItem.js b/awx/ui/src/components/ResourceAccessList/ResourceAccessListItem.js index fb3ba09a3..8fd603571 100644 --- a/awx/ui/src/components/ResourceAccessList/ResourceAccessListItem.js +++ b/awx/ui/src/components/ResourceAccessList/ResourceAccessListItem.js @@ -1,20 +1,13 @@ import React from 'react'; -import { func } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Chip } from '@patternfly/react-core'; import { Tr, Td } from '@patternfly/react-table'; import { Link } from 'react-router-dom'; -import { AccessRecord } from 'types'; import ChipGroup from '../ChipGroup'; import { DetailList, Detail } from '../DetailList'; function ResourceAccessListItem({ accessRecord, onRoleDelete }) { - ResourceAccessListItem.propTypes = { - accessRecord: AccessRecord.isRequired, - onRoleDelete: func.isRequired, - }; - const getRoleLists = () => { const teamRoles = []; const userRoles = []; diff --git a/awx/ui/src/components/RoutedTabs/RoutedTabs.js b/awx/ui/src/components/RoutedTabs/RoutedTabs.js index 68c5d86fd..5e1c4e134 100644 --- a/awx/ui/src/components/RoutedTabs/RoutedTabs.js +++ b/awx/ui/src/components/RoutedTabs/RoutedTabs.js @@ -1,5 +1,4 @@ import React from 'react'; -import { shape, string, number, arrayOf, node, oneOfType } from 'prop-types'; import { Tab as PFTab, Tabs as PFTabs, @@ -70,13 +69,4 @@ function RoutedTabs({ tabsArray }) { ); } -RoutedTabs.propTypes = { - tabsArray: arrayOf( - shape({ - id: number.isRequired, - name: oneOfType([string.isRequired, node.isRequired]), - }) - ).isRequired, -}; - export default RoutedTabs; diff --git a/awx/ui/src/components/Schedule/ScheduleAdd/ScheduleAdd.js b/awx/ui/src/components/Schedule/ScheduleAdd/ScheduleAdd.js index c8d661c64..bcadd3972 100644 --- a/awx/ui/src/components/Schedule/ScheduleAdd/ScheduleAdd.js +++ b/awx/ui/src/components/Schedule/ScheduleAdd/ScheduleAdd.js @@ -1,5 +1,4 @@ import React, { useState } from 'react'; -import { func, shape } from 'prop-types'; import { useLocation } from 'react-router-dom'; import { useNavigate } from 'react-router-dom-v5-compat'; import { Card } from '@patternfly/react-core'; @@ -164,8 +163,4 @@ function ScheduleAdd({ ); } -ScheduleAdd.propTypes = { - apiModel: shape({ createSchedule: func.isRequired }).isRequired, -}; - export default ScheduleAdd; diff --git a/awx/ui/src/components/Schedule/ScheduleDetail/ScheduleDetail.js b/awx/ui/src/components/Schedule/ScheduleDetail/ScheduleDetail.js index 21a987e9b..c592fb09b 100644 --- a/awx/ui/src/components/Schedule/ScheduleDetail/ScheduleDetail.js +++ b/awx/ui/src/components/Schedule/ScheduleDetail/ScheduleDetail.js @@ -4,7 +4,6 @@ import { useNavigate } from 'react-router-dom-v5-compat'; import styled from 'styled-components'; import { useLingui } from '@lingui/react/macro'; import { Chip, Divider, Title, Button } from '@patternfly/react-core'; -import { Schedule } from 'types'; import { formatDateString } from 'util/dates'; import useRequest, { useDismissableError } from 'hooks/useRequest'; import { JobTemplatesAPI, SchedulesAPI, WorkflowJobTemplatesAPI } from 'api'; @@ -669,8 +668,4 @@ function ScheduleDetail({ hasDaysToKeepField, schedule, surveyConfig }) { ); } -ScheduleDetail.propTypes = { - schedule: Schedule.isRequired, -}; - export default ScheduleDetail; diff --git a/awx/ui/src/components/Schedule/ScheduleEdit/ScheduleEdit.js b/awx/ui/src/components/Schedule/ScheduleEdit/ScheduleEdit.js index ac352cfd0..6a241bd91 100644 --- a/awx/ui/src/components/Schedule/ScheduleEdit/ScheduleEdit.js +++ b/awx/ui/src/components/Schedule/ScheduleEdit/ScheduleEdit.js @@ -1,7 +1,6 @@ import React, { useState } from 'react'; import { useLocation } from 'react-router-dom'; import { useNavigate } from 'react-router-dom-v5-compat'; -import { shape } from 'prop-types'; import { Card } from '@patternfly/react-core'; import yaml from 'js-yaml'; import { OrganizationsAPI, SchedulesAPI } from 'api'; @@ -197,8 +196,4 @@ function ScheduleEdit({ ); } -ScheduleEdit.propTypes = { - schedule: shape({}).isRequired, -}; - export default ScheduleEdit; diff --git a/awx/ui/src/components/Schedule/ScheduleList/ScheduleList.js b/awx/ui/src/components/Schedule/ScheduleList/ScheduleList.js index aa1cbc8ae..41a538f4d 100644 --- a/awx/ui/src/components/Schedule/ScheduleList/ScheduleList.js +++ b/awx/ui/src/components/Schedule/ScheduleList/ScheduleList.js @@ -1,6 +1,5 @@ import React, { useEffect, useCallback } from 'react'; import { useLocation } from 'react-router-dom'; -import { bool, func } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { SchedulesAPI } from 'api'; import useRequest, { useDeleteItems } from 'hooks/useRequest'; @@ -254,10 +253,4 @@ function ScheduleList({ ); } -ScheduleList.propTypes = { - hideAddButton: bool, - loadSchedules: func.isRequired, - loadScheduleOptions: func.isRequired, -}; - export default ScheduleList; diff --git a/awx/ui/src/components/Schedule/ScheduleList/ScheduleListItem.js b/awx/ui/src/components/Schedule/ScheduleList/ScheduleListItem.js index 83b2aea21..6fcaf5ea4 100644 --- a/awx/ui/src/components/Schedule/ScheduleList/ScheduleListItem.js +++ b/awx/ui/src/components/Schedule/ScheduleList/ScheduleListItem.js @@ -1,5 +1,4 @@ import React from 'react'; -import { bool, func } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; @@ -11,7 +10,6 @@ import { ExclamationTriangleIcon as PFExclamationTriangleIcon, } from '@patternfly/react-icons'; import styled from 'styled-components'; -import { Schedule } from 'types'; import { formatDateString } from 'util/dates'; import { DetailList, Detail } from '../../DetailList'; import { ActionsTd, ActionItem, TdBreakWord } from '../../PaginatedTable'; @@ -148,10 +146,4 @@ function ScheduleListItem({ ); } -ScheduleListItem.propTypes = { - isSelected: bool.isRequired, - onSelect: func.isRequired, - schedule: Schedule.isRequired, -}; - export default ScheduleListItem; diff --git a/awx/ui/src/components/Schedule/ScheduleOccurrences/ScheduleOccurrences.js b/awx/ui/src/components/Schedule/ScheduleOccurrences/ScheduleOccurrences.js index 3ee01de9d..a110a0e5b 100644 --- a/awx/ui/src/components/Schedule/ScheduleOccurrences/ScheduleOccurrences.js +++ b/awx/ui/src/components/Schedule/ScheduleOccurrences/ScheduleOccurrences.js @@ -1,5 +1,4 @@ import React, { useState } from 'react'; -import { shape, string } from 'prop-types'; import styled from 'styled-components'; import { useLingui } from '@lingui/react/macro'; @@ -83,9 +82,4 @@ function ScheduleOccurrences({ ); } -ScheduleOccurrences.propTypes = { - preview: shape(), - tz: string, -}; - export default ScheduleOccurrences; diff --git a/awx/ui/src/components/Schedule/shared/FrequencySelect.js b/awx/ui/src/components/Schedule/shared/FrequencySelect.js index b76d6357a..6cb139690 100644 --- a/awx/ui/src/components/Schedule/shared/FrequencySelect.js +++ b/awx/ui/src/components/Schedule/shared/FrequencySelect.js @@ -1,5 +1,4 @@ import React, { useState } from 'react'; -import { arrayOf, string } from 'prop-types'; import { Select, SelectOption, SelectVariant } from '@patternfly/react-core'; export default function FrequencySelect({ @@ -48,8 +47,4 @@ export default function FrequencySelect({ ); } -FrequencySelect.propTypes = { - value: arrayOf(string).isRequired, -}; - export { SelectOption, SelectVariant }; diff --git a/awx/ui/src/components/Schedule/shared/ScheduleForm.js b/awx/ui/src/components/Schedule/shared/ScheduleForm.js index 78ad95791..58f7139e2 100644 --- a/awx/ui/src/components/Schedule/shared/ScheduleForm.js +++ b/awx/ui/src/components/Schedule/shared/ScheduleForm.js @@ -1,5 +1,4 @@ import React, { useEffect, useCallback, useState, useRef } from 'react'; -import { shape, func } from 'prop-types'; import { DateTime } from 'luxon'; import { useLingui } from '@lingui/react/macro'; import { Formik } from 'formik'; @@ -572,13 +571,6 @@ function ScheduleForm({ ); } -ScheduleForm.propTypes = { - handleCancel: func.isRequired, - handleSubmit: func.isRequired, - schedule: shape({}), - submitError: shape(), -}; - export default ScheduleForm; function scheduleHasInstances(values) { diff --git a/awx/ui/src/components/ScreenHeader/ScreenHeader.js b/awx/ui/src/components/ScreenHeader/ScreenHeader.js index a4437ebeb..82ff5a00b 100644 --- a/awx/ui/src/components/ScreenHeader/ScreenHeader.js +++ b/awx/ui/src/components/ScreenHeader/ScreenHeader.js @@ -1,5 +1,4 @@ import React from 'react'; -import PropTypes from 'prop-types'; import useTitle from 'hooks/useTitle'; import { useLingui } from '@lingui/react/macro'; @@ -140,12 +139,4 @@ const Crumb = ({ breadcrumbConfig, showDivider }) => { ); }; -ScreenHeader.propTypes = { - breadcrumbConfig: PropTypes.objectOf(PropTypes.string).isRequired, -}; - -Crumb.propTypes = { - breadcrumbConfig: PropTypes.objectOf(PropTypes.string).isRequired, -}; - export default ScreenHeader; diff --git a/awx/ui/src/components/Search/AdvancedSearch.js b/awx/ui/src/components/Search/AdvancedSearch.js index 135ad2427..b895807db 100644 --- a/awx/ui/src/components/Search/AdvancedSearch.js +++ b/awx/ui/src/components/Search/AdvancedSearch.js @@ -1,5 +1,4 @@ import React, { useEffect, useState } from 'react'; -import { string, func, bool, arrayOf } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Button, @@ -18,7 +17,6 @@ import styled from 'styled-components'; import { useLocation } from 'react-router-dom'; import { useConfig } from 'contexts/Config'; import getDocsBaseUrl from 'util/getDocsBaseUrl'; -import { SearchableKeys } from 'types'; import RelatedLookupTypeInput from './RelatedLookupTypeInput'; import LookupTypeInput from './LookupTypeInput'; @@ -346,14 +344,4 @@ function AdvancedSearch({ ); } -AdvancedSearch.propTypes = { - onSearch: func.isRequired, - searchableKeys: SearchableKeys, - relatedSearchableKeys: arrayOf(string), - maxSelectHeight: string, - enableNegativeFiltering: bool, - enableRelatedFuzzyFiltering: bool, - handleIsAnsibleFactsSelected: func, -}; - export default AdvancedSearch; diff --git a/awx/ui/src/components/Search/LookupTypeInput.js b/awx/ui/src/components/Search/LookupTypeInput.js index b5eb60c18..c0f802bad 100644 --- a/awx/ui/src/components/Search/LookupTypeInput.js +++ b/awx/ui/src/components/Search/LookupTypeInput.js @@ -1,5 +1,4 @@ import React, { useState } from 'react'; -import { string, oneOfType, arrayOf, func } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Select, SelectOption, SelectVariant } from '@patternfly/react-core'; @@ -144,11 +143,4 @@ function LookupTypeInput({ ); } -LookupTypeInput.propTypes = { - type: string, - value: oneOfType([string, arrayOf(string)]), - setValue: func.isRequired, - maxSelectHeight: string, -}; - export default LookupTypeInput; diff --git a/awx/ui/src/components/Search/Search.js b/awx/ui/src/components/Search/Search.js index 047cf46df..1e607213e 100644 --- a/awx/ui/src/components/Search/Search.js +++ b/awx/ui/src/components/Search/Search.js @@ -1,5 +1,4 @@ import React, { useState, useEffect } from 'react'; -import PropTypes from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { useLocation } from 'react-router-dom'; @@ -18,7 +17,6 @@ import { import { SearchIcon } from '@patternfly/react-icons'; import styled from 'styled-components'; import { parseQueryString } from 'util/qs'; -import { QSConfig, SearchColumns, SearchableKeys } from 'types'; import AdvancedSearch from './AdvancedSearch'; import getChipsByKey from './getChipsByKey'; @@ -387,17 +385,4 @@ function Search({ ); } -Search.propTypes = { - qsConfig: QSConfig.isRequired, - columns: SearchColumns.isRequired, - onSearch: PropTypes.func, - onRemove: PropTypes.func, - onShowAdvancedSearch: PropTypes.func.isRequired, - isDisabled: PropTypes.bool, - maxSelectHeight: PropTypes.string, - enableNegativeFiltering: PropTypes.bool, - enableRelatedFuzzyFiltering: PropTypes.bool, - searchableKeys: SearchableKeys, -}; - export default Search; diff --git a/awx/ui/src/components/SelectableCard/SelectableCard.js b/awx/ui/src/components/SelectableCard/SelectableCard.js index 0c35a6046..b763f6179 100644 --- a/awx/ui/src/components/SelectableCard/SelectableCard.js +++ b/awx/ui/src/components/SelectableCard/SelectableCard.js @@ -1,5 +1,4 @@ import React from 'react'; -import PropTypes from 'prop-types'; import styled from 'styled-components'; const SelectableItem = styled.div` @@ -58,12 +57,4 @@ function SelectableCard({ ); } -SelectableCard.propTypes = { - label: PropTypes.string, - description: PropTypes.string, - onClick: PropTypes.func.isRequired, - isSelected: PropTypes.bool, - ariaLabel: PropTypes.string, -}; - export default SelectableCard; diff --git a/awx/ui/src/components/SelectedList/DraggableSelectedList.js b/awx/ui/src/components/SelectedList/DraggableSelectedList.js index c64c44e6c..7859f8043 100644 --- a/awx/ui/src/components/SelectedList/DraggableSelectedList.js +++ b/awx/ui/src/components/SelectedList/DraggableSelectedList.js @@ -1,5 +1,4 @@ import React, { useState } from 'react'; -import PropTypes from 'prop-types'; import { Button, DataList, @@ -129,14 +128,4 @@ function DraggableSelectedList({ ); } -const ListItem = PropTypes.shape({ - id: PropTypes.number.isRequired, - name: PropTypes.string.isRequired, -}); -DraggableSelectedList.propTypes = { - onRemove: PropTypes.func, - onRowDrag: PropTypes.func, - selected: PropTypes.arrayOf(ListItem), -}; - export default DraggableSelectedList; diff --git a/awx/ui/src/components/SelectedList/SelectedList.js b/awx/ui/src/components/SelectedList/SelectedList.js index bd6287cb1..d792305b1 100644 --- a/awx/ui/src/components/SelectedList/SelectedList.js +++ b/awx/ui/src/components/SelectedList/SelectedList.js @@ -1,5 +1,4 @@ import React from 'react'; -import PropTypes from 'prop-types'; import { Chip, Split as PFSplit, SplitItem } from '@patternfly/react-core'; import styled from 'styled-components'; @@ -54,13 +53,4 @@ function SelectedList({ ); } -SelectedList.propTypes = { - displayKey: PropTypes.string, - label: PropTypes.string, - onRemove: PropTypes.func, - selected: PropTypes.arrayOf(PropTypes.object).isRequired, - isReadOnly: PropTypes.bool, - renderItemChip: PropTypes.func, -}; - export default SelectedList; diff --git a/awx/ui/src/components/Sort/Sort.js b/awx/ui/src/components/Sort/Sort.js index 0a16567f2..069f9af72 100644 --- a/awx/ui/src/components/Sort/Sort.js +++ b/awx/ui/src/components/Sort/Sort.js @@ -1,6 +1,5 @@ import React, { useState } from 'react'; -import PropTypes from 'prop-types'; import { useLocation } from 'react-router-dom'; import { useLingui } from '@lingui/react/macro'; @@ -22,7 +21,6 @@ import { import styled from 'styled-components'; import { parseQueryString } from 'util/qs'; -import { SortColumns, QSConfig } from 'types'; const NoOptionDropdown = styled.div` align-self: stretch; @@ -149,10 +147,4 @@ function Sort({ columns, qsConfig, onSort = null }) { ); } -Sort.propTypes = { - qsConfig: QSConfig.isRequired, - columns: SortColumns.isRequired, - onSort: PropTypes.func, -}; - export default Sort; diff --git a/awx/ui/src/components/Sparkline/Sparkline.js b/awx/ui/src/components/Sparkline/Sparkline.js index 1980f6209..52a5c113f 100644 --- a/awx/ui/src/components/Sparkline/Sparkline.js +++ b/awx/ui/src/components/Sparkline/Sparkline.js @@ -1,12 +1,10 @@ import React from 'react'; -import { arrayOf } from 'prop-types'; import { Link as _Link } from 'react-router-dom'; import { Tooltip } from '@patternfly/react-core'; import styled from 'styled-components'; import { useLingui } from '@lingui/react/macro'; import { formatDateString } from 'util/dates'; -import { Job } from 'types'; import StatusIcon from '../StatusIcon'; import { JOB_TYPE_URL_SEGMENTS } from '../../constants'; @@ -53,8 +51,4 @@ const Sparkline = ({ jobs = [] }) => { return {statusIcons}; }; -Sparkline.propTypes = { - jobs: arrayOf(Job), -}; - export default Sparkline; diff --git a/awx/ui/src/components/StatusIcon/StatusIcon.js b/awx/ui/src/components/StatusIcon/StatusIcon.js index 909e80025..dbe6f575e 100644 --- a/awx/ui/src/components/StatusIcon/StatusIcon.js +++ b/awx/ui/src/components/StatusIcon/StatusIcon.js @@ -1,5 +1,4 @@ import React from 'react'; -import { string } from 'prop-types'; import icons from './icons'; const green = '--pf-global--success-color--100'; @@ -47,8 +46,4 @@ function StatusIcon({ status, ...props }) { ); } -StatusIcon.propTypes = { - status: string.isRequired, -}; - export default StatusIcon; diff --git a/awx/ui/src/components/StatusLabel/StatusLabel.js b/awx/ui/src/components/StatusLabel/StatusLabel.js index d02c2e644..be8dd5e21 100644 --- a/awx/ui/src/components/StatusLabel/StatusLabel.js +++ b/awx/ui/src/components/StatusLabel/StatusLabel.js @@ -1,6 +1,5 @@ import React from 'react'; import { useLingui } from '@lingui/react/macro'; -import { oneOf } from 'prop-types'; import { Label, Tooltip } from '@patternfly/react-core'; import icons from '../StatusIcon/icons'; @@ -83,32 +82,3 @@ export default function StatusLabel({ status, tooltipContent = '', children }) { ); } - -StatusLabel.propTypes = { - status: oneOf([ - 'approved', - 'denied', - 'success', - 'successful', - 'ok', - 'healthy', - 'failed', - 'error', - 'unreachable', - 'running', - 'pending', - 'skipped', - 'timedOut', - 'waiting', - 'disabled', - 'canceled', - 'changed', - 'ready', - 'installed', - 'provisioning', - 'deprovisioning', - 'unavailable', - 'provision-fail', - 'deprovision-fail', - ]).isRequired, -}; diff --git a/awx/ui/src/components/Workflow/WorkflowActionTooltip.js b/awx/ui/src/components/Workflow/WorkflowActionTooltip.js index e9a4bd612..7f0e85fe6 100644 --- a/awx/ui/src/components/Workflow/WorkflowActionTooltip.js +++ b/awx/ui/src/components/Workflow/WorkflowActionTooltip.js @@ -1,6 +1,5 @@ import React from 'react'; import styled from 'styled-components'; -import { node, number } from 'prop-types'; const TooltipContents = styled.div` display: flex; @@ -60,10 +59,4 @@ function WorkflowActionTooltip({ actions, pointX, pointY }) { ); } -WorkflowActionTooltip.propTypes = { - actions: node.isRequired, - pointX: number.isRequired, - pointY: number.isRequired, -}; - export default WorkflowActionTooltip; diff --git a/awx/ui/src/components/Workflow/WorkflowActionTooltipItem.js b/awx/ui/src/components/Workflow/WorkflowActionTooltipItem.js index 3dd647857..fc0808bbf 100644 --- a/awx/ui/src/components/Workflow/WorkflowActionTooltipItem.js +++ b/awx/ui/src/components/Workflow/WorkflowActionTooltipItem.js @@ -1,6 +1,5 @@ import React from 'react'; import styled from 'styled-components'; -import { func, string } from 'prop-types'; const TooltipItem = styled.div` align-items: center; @@ -42,11 +41,4 @@ function WorkflowActionTooltipItem({ ); } -WorkflowActionTooltipItem.propTypes = { - id: string.isRequired, - onClick: func, - onMouseEnter: func, - onMouseLeave: func, -}; - export default WorkflowActionTooltipItem; diff --git a/awx/ui/src/components/Workflow/WorkflowLinkHelp.js b/awx/ui/src/components/Workflow/WorkflowLinkHelp.js index 237b01282..b027c87ea 100644 --- a/awx/ui/src/components/Workflow/WorkflowLinkHelp.js +++ b/awx/ui/src/components/Workflow/WorkflowLinkHelp.js @@ -2,7 +2,6 @@ import React from 'react'; import { useLingui } from '@lingui/react/macro'; import styled from 'styled-components'; -import { shape } from 'prop-types'; const GridDL = styled.dl` column-gap: 15px; @@ -44,8 +43,4 @@ function WorkflowLinkHelp({ link }) { ); } -WorkflowLinkHelp.propTypes = { - link: shape().isRequired, -}; - export default WorkflowLinkHelp; diff --git a/awx/ui/src/components/Workflow/WorkflowNodeHelp.js b/awx/ui/src/components/Workflow/WorkflowNodeHelp.js index fdf917677..2579591a3 100644 --- a/awx/ui/src/components/Workflow/WorkflowNodeHelp.js +++ b/awx/ui/src/components/Workflow/WorkflowNodeHelp.js @@ -2,7 +2,6 @@ import React from 'react'; import { Trans, useLingui } from '@lingui/react/macro'; import styled from 'styled-components'; import { ExclamationTriangleIcon } from '@patternfly/react-icons'; -import { shape } from 'prop-types'; import { secondsToHHMMSS } from 'util/dates'; import { stringIsUUID } from 'util/strings'; @@ -204,8 +203,4 @@ function WorkflowNodeHelp({ node }) { ); } -WorkflowNodeHelp.propTypes = { - node: shape().isRequired, -}; - export default WorkflowNodeHelp; diff --git a/awx/ui/src/components/Workflow/WorkflowNodeTypeLetter.js b/awx/ui/src/components/Workflow/WorkflowNodeTypeLetter.js index b6a880e74..7108bcc3e 100644 --- a/awx/ui/src/components/Workflow/WorkflowNodeTypeLetter.js +++ b/awx/ui/src/components/Workflow/WorkflowNodeTypeLetter.js @@ -1,6 +1,5 @@ import React from 'react'; import styled from 'styled-components'; -import { shape } from 'prop-types'; import { PauseIcon } from '@patternfly/react-icons'; const NodeTypeLetter = styled.div` @@ -79,8 +78,4 @@ function WorkflowNodeTypeLetter({ node }) { ); } -WorkflowNodeTypeLetter.propTypes = { - node: shape().isRequired, -}; - export default WorkflowNodeTypeLetter; diff --git a/awx/ui/src/components/Workflow/WorkflowStartNode.js b/awx/ui/src/components/Workflow/WorkflowStartNode.js index f48f9a598..cb5308b7e 100644 --- a/awx/ui/src/components/Workflow/WorkflowStartNode.js +++ b/awx/ui/src/components/Workflow/WorkflowStartNode.js @@ -1,7 +1,6 @@ import React, { useContext, useRef, useState } from 'react'; import styled from 'styled-components'; import { useLingui } from '@lingui/react/macro'; -import { bool, func } from 'prop-types'; import { PlusIcon } from '@patternfly/react-icons'; import { WorkflowDispatchContext, @@ -85,9 +84,4 @@ function WorkflowStartNode({ onUpdateHelpText = () => {}, showActionTooltip }) { ); } -WorkflowStartNode.propTypes = { - showActionTooltip: bool.isRequired, - onUpdateHelpText: func, -}; - export default WorkflowStartNode; diff --git a/awx/ui/src/components/Workflow/WorkflowTools.js b/awx/ui/src/components/Workflow/WorkflowTools.js index 1c41c5e0e..682057e10 100644 --- a/awx/ui/src/components/Workflow/WorkflowTools.js +++ b/awx/ui/src/components/Workflow/WorkflowTools.js @@ -1,7 +1,6 @@ import React, { useContext } from 'react'; import { useLingui } from '@lingui/react/macro'; import styled from 'styled-components'; -import { func, number } from 'prop-types'; import { Button, Tooltip } from '@patternfly/react-core'; import { CaretDownIcon, @@ -188,12 +187,4 @@ function WorkflowTools({ ); } -WorkflowTools.propTypes = { - onFitGraph: func.isRequired, - onPan: func.isRequired, - onPanToMiddle: func.isRequired, - onZoomChange: func.isRequired, - zoomPercentage: number.isRequired, -}; - export default WorkflowTools; diff --git a/awx/ui/src/hooks/useToast.js b/awx/ui/src/hooks/useToast.js index 0f5ec1da6..b1d8367a8 100644 --- a/awx/ui/src/hooks/useToast.js +++ b/awx/ui/src/hooks/useToast.js @@ -5,8 +5,6 @@ import { AlertActionCloseButton, AlertVariant, } from '@patternfly/react-core'; -import { arrayOf, func } from 'prop-types'; -import { Toast as ToastType } from 'types'; export default function useToast() { const [toasts, setToasts] = useState([]); @@ -56,9 +54,4 @@ export function Toast({ toasts, removeToast }) { ); } -Toast.propTypes = { - toasts: arrayOf(ToastType).isRequired, - removeToast: func.isRequired, -}; - export { AlertVariant }; diff --git a/awx/ui/src/screens/ActivityStream/ActivityStreamListItem.js b/awx/ui/src/screens/ActivityStream/ActivityStreamListItem.js index 57c07ef93..6afbb4e00 100644 --- a/awx/ui/src/screens/ActivityStream/ActivityStreamListItem.js +++ b/awx/ui/src/screens/ActivityStream/ActivityStreamListItem.js @@ -1,5 +1,4 @@ import React from 'react'; -import { shape } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Tr, Td } from '@patternfly/react-table'; import { Link } from 'react-router-dom'; @@ -12,9 +11,6 @@ import ActivityStreamDescription from './ActivityStreamDescription'; function ActivityStreamListItem({ streamItem }) { const { t } = useLingui(); - ActivityStreamListItem.propTypes = { - streamItem: shape({}).isRequired, - }; const buildUser = (item) => { let link; diff --git a/awx/ui/src/screens/Application/ApplicationTokens/ApplicationTokenListItem.js b/awx/ui/src/screens/Application/ApplicationTokens/ApplicationTokenListItem.js index 896491e8d..d3b10797e 100644 --- a/awx/ui/src/screens/Application/ApplicationTokens/ApplicationTokenListItem.js +++ b/awx/ui/src/screens/Application/ApplicationTokens/ApplicationTokenListItem.js @@ -1,10 +1,8 @@ import React from 'react'; -import { string, bool, func, number } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Link } from 'react-router-dom'; import { Tr, Td } from '@patternfly/react-table'; -import { Token } from 'types'; import { formatDateString } from 'util/dates'; import { toTitleCase } from 'util/strings'; @@ -39,12 +37,4 @@ function ApplicationTokenListItem({ ); } -ApplicationTokenListItem.propTypes = { - token: Token.isRequired, - detailUrl: string.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, - rowIndex: number.isRequired, -}; - export default ApplicationTokenListItem; diff --git a/awx/ui/src/screens/Application/ApplicationsList/ApplicationListItem.js b/awx/ui/src/screens/Application/ApplicationsList/ApplicationListItem.js index 57ea81b6f..7c2104d7c 100644 --- a/awx/ui/src/screens/Application/ApplicationsList/ApplicationListItem.js +++ b/awx/ui/src/screens/Application/ApplicationsList/ApplicationListItem.js @@ -1,5 +1,4 @@ import React from 'react'; -import { string, bool, func } from 'prop-types'; import { Button } from '@patternfly/react-core'; import { Tr, Td } from '@patternfly/react-table'; import { useLingui } from '@lingui/react/macro'; @@ -7,7 +6,6 @@ import { Link } from 'react-router-dom'; import { PencilAltIcon } from '@patternfly/react-icons'; import { ActionsTd, ActionItem, TdBreakWord } from 'components/PaginatedTable'; import { formatDateString } from 'util/dates'; -import { Application } from 'types'; function ApplicationListItem({ application, @@ -66,11 +64,4 @@ function ApplicationListItem({ ); } -ApplicationListItem.propTypes = { - application: Application.isRequired, - detailUrl: string.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default ApplicationListItem; diff --git a/awx/ui/src/screens/Application/shared/ApplicationForm.js b/awx/ui/src/screens/Application/shared/ApplicationForm.js index 6b4efe602..07568bc87 100644 --- a/awx/ui/src/screens/Application/shared/ApplicationForm.js +++ b/awx/ui/src/screens/Application/shared/ApplicationForm.js @@ -4,7 +4,6 @@ import { useLocation } from 'react-router-dom'; import { useLingui } from '@lingui/react/macro'; import { Formik, useField, useFormikContext } from 'formik'; import { Form, FormGroup } from '@patternfly/react-core'; -import PropTypes from 'prop-types'; import { required } from 'util/validators'; import FormField, { FormSubmitError } from 'components/FormField'; @@ -184,11 +183,4 @@ function ApplicationForm({ ); } -ApplicationForm.propTypes = { - onSubmit: PropTypes.func.isRequired, - onCancel: PropTypes.func.isRequired, - authorizationOptions: PropTypes.arrayOf(PropTypes.object).isRequired, - clientTypeOptions: PropTypes.arrayOf(PropTypes.object).isRequired, -}; - export default ApplicationForm; diff --git a/awx/ui/src/screens/Credential/CredentialDetail/CredentialDetail.js b/awx/ui/src/screens/Credential/CredentialDetail/CredentialDetail.js index 11aee6b82..f7812cce2 100644 --- a/awx/ui/src/screens/Credential/CredentialDetail/CredentialDetail.js +++ b/awx/ui/src/screens/Credential/CredentialDetail/CredentialDetail.js @@ -21,7 +21,6 @@ import CodeEditor from 'components/CodeEditor'; import CredentialChip from 'components/CredentialChip'; import ErrorDetail from 'components/ErrorDetail'; import { CredentialsAPI, CredentialTypesAPI } from 'api'; -import { Credential } from 'types'; import useRequest, { useDismissableError } from 'hooks/useRequest'; import { relatedResourceDeleteRequests } from 'util/getRelatedResourceDeleteDetails'; @@ -324,8 +323,4 @@ function CredentialDetail({ credential }) { ); } -CredentialDetail.propTypes = { - credential: Credential.isRequired, -}; - export default CredentialDetail; diff --git a/awx/ui/src/screens/Credential/CredentialEdit/CredentialEdit.js b/awx/ui/src/screens/Credential/CredentialEdit/CredentialEdit.js index 1279e8c3a..571df6016 100644 --- a/awx/ui/src/screens/Credential/CredentialEdit/CredentialEdit.js +++ b/awx/ui/src/screens/Credential/CredentialEdit/CredentialEdit.js @@ -12,7 +12,6 @@ import ContentError from 'components/ContentError'; import ContentLoading from 'components/ContentLoading'; import useRequest from 'hooks/useRequest'; import { useConfig } from 'contexts/Config'; -import { Credential } from 'types'; import CredentialForm from '../shared/CredentialForm'; function CredentialEdit({ credential }) { @@ -203,9 +202,5 @@ function CredentialEdit({ credential }) { ); } -CredentialEdit.propTypes = { - credential: Credential.isRequired, -}; - export { CredentialEdit as _CredentialEdit }; export default CredentialEdit; diff --git a/awx/ui/src/screens/Credential/CredentialList/CredentialListItem.js b/awx/ui/src/screens/Credential/CredentialList/CredentialListItem.js index aedf097b6..c45419f16 100644 --- a/awx/ui/src/screens/Credential/CredentialList/CredentialListItem.js +++ b/awx/ui/src/screens/Credential/CredentialList/CredentialListItem.js @@ -1,5 +1,4 @@ import React, { useState, useCallback } from 'react'; -import { string, bool, func } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Link } from 'react-router-dom'; @@ -9,7 +8,6 @@ import { PencilAltIcon } from '@patternfly/react-icons'; import { ActionsTd, ActionItem, TdBreakWord } from 'components/PaginatedTable'; import { timeOfDay } from 'util/dates'; -import { Credential } from 'types'; import { CredentialsAPI } from 'api'; import CopyButton from 'components/CopyButton'; @@ -94,11 +92,4 @@ function CredentialListItem({ ); } -CredentialListItem.propTypes = { - detailUrl: string.isRequired, - credential: Credential.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default CredentialListItem; diff --git a/awx/ui/src/screens/Credential/shared/CredentialForm.js b/awx/ui/src/screens/Credential/shared/CredentialForm.js index 952f1b351..768dba3e9 100644 --- a/awx/ui/src/screens/Credential/shared/CredentialForm.js +++ b/awx/ui/src/screens/Credential/shared/CredentialForm.js @@ -1,6 +1,5 @@ import React, { useCallback, useEffect, useState } from 'react'; import { useLocation } from 'react-router-dom'; -import { shape } from 'prop-types'; import { Formik, useField, useFormikContext } from 'formik'; import { useLingui } from '@lingui/react/macro'; @@ -357,11 +356,4 @@ function CredentialForm({ ); } -CredentialForm.propTypes = { - credentialTypes: shape({}).isRequired, - credential: shape({}), - inputSources: shape({}), - submitError: shape({}), -}; - export default CredentialForm; diff --git a/awx/ui/src/screens/Credential/shared/CredentialFormFields/BecomeMethodField.js b/awx/ui/src/screens/Credential/shared/CredentialFormFields/BecomeMethodField.js index d66a53abe..6dc64be67 100644 --- a/awx/ui/src/screens/Credential/shared/CredentialFormFields/BecomeMethodField.js +++ b/awx/ui/src/screens/Credential/shared/CredentialFormFields/BecomeMethodField.js @@ -1,6 +1,5 @@ import React, { useState } from 'react'; import { useField } from 'formik'; -import { bool, shape, string } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { FormGroup, @@ -73,12 +72,5 @@ function BecomeMethodField({ fieldOptions, isRequired = false }) { ); } -BecomeMethodField.propTypes = { - fieldOptions: shape({ - id: string.isRequired, - label: string.isRequired, - }).isRequired, - isRequired: bool, -}; export default BecomeMethodField; diff --git a/awx/ui/src/screens/Credential/shared/CredentialFormFields/CredentialField.js b/awx/ui/src/screens/Credential/shared/CredentialFormFields/CredentialField.js index a3e2cef3d..39136a22a 100644 --- a/awx/ui/src/screens/Credential/shared/CredentialFormFields/CredentialField.js +++ b/awx/ui/src/screens/Credential/shared/CredentialFormFields/CredentialField.js @@ -2,7 +2,6 @@ import React, { useState } from 'react'; import { useLocation } from 'react-router-dom'; import { useField, useFormikContext } from 'formik'; -import { shape, string } from 'prop-types'; import styled from 'styled-components'; import { useLingui } from '@lingui/react/macro'; import { @@ -17,7 +16,6 @@ import { import { PficonHistoryIcon } from '@patternfly/react-icons'; import { PasswordInput } from 'components/FormField'; import AnsibleSelect from 'components/AnsibleSelect'; -import { CredentialType } from 'types'; import { required } from 'util/validators'; import { CredentialPluginField } from '../CredentialPlugins'; import BecomeMethodField from './BecomeMethodField'; @@ -159,14 +157,6 @@ function CredentialInput({ ); } -CredentialInput.propTypes = { - fieldOptions: shape({ - id: string.isRequired, - label: string.isRequired, - }).isRequired, - credentialKind: string, -}; - function CredentialField({ credentialType, fieldOptions }) { const { values: formikValues } = useFormikContext(); const location = useLocation(); @@ -244,12 +234,4 @@ function CredentialField({ credentialType, fieldOptions }) { ); } -CredentialField.propTypes = { - credentialType: CredentialType.isRequired, - fieldOptions: shape({ - id: string.isRequired, - label: string.isRequired, - }).isRequired, -}; - export default CredentialField; diff --git a/awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginField.js b/awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginField.js index c5643d141..3f126004c 100644 --- a/awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginField.js +++ b/awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginField.js @@ -1,6 +1,5 @@ import React, { useEffect, useState } from 'react'; -import PropTypes from 'prop-types'; import { useLocation } from 'react-router-dom'; import { useNavigate } from 'react-router-dom-v5-compat'; import { useLingui } from '@lingui/react/macro'; @@ -166,13 +165,4 @@ function CredentialPluginField({ ); } -CredentialPluginField.propTypes = { - fieldOptions: PropTypes.shape({ - id: PropTypes.string.isRequired, - label: PropTypes.string.isRequired, - }).isRequired, - isDisabled: PropTypes.bool, - isRequired: PropTypes.bool, -}; - export default CredentialPluginField; diff --git a/awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.js b/awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.js index cc44f5536..740238598 100644 --- a/awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.js +++ b/awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginPrompt/CredentialPluginPrompt.js @@ -1,5 +1,4 @@ import React, { useCallback } from 'react'; -import { func, shape } from 'prop-types'; import { Formik, useField } from 'formik'; import { useLingui } from '@lingui/react/macro'; import { @@ -145,10 +144,4 @@ function CredentialPluginPrompt({ onClose, onSubmit, initialValues = {} }) { ); } -CredentialPluginPrompt.propTypes = { - onClose: func.isRequired, - onSubmit: func.isRequired, - initialValues: shape({}), -}; - export default CredentialPluginPrompt; diff --git a/awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginSelected.js b/awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginSelected.js index 865a2fe86..a353d4a0b 100644 --- a/awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginSelected.js +++ b/awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginSelected.js @@ -1,11 +1,9 @@ import React from 'react'; -import { func } from 'prop-types'; import { Trans, useLingui } from '@lingui/react/macro'; import styled from 'styled-components'; import { Button, ButtonVariant, Tooltip } from '@patternfly/react-core'; import { KeyIcon } from '@patternfly/react-icons'; import CredentialChip from 'components/CredentialChip'; -import { Credential } from 'types'; const SelectedCredential = styled.div` display: flex; @@ -57,10 +55,4 @@ function CredentialPluginSelected({ ); } -CredentialPluginSelected.propTypes = { - credential: Credential.isRequired, - onEditPlugin: func, - onClearPlugin: func, -}; - export default CredentialPluginSelected; diff --git a/awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginTestAlert.js b/awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginTestAlert.js index 2979c7b02..52ff960cb 100644 --- a/awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginTestAlert.js +++ b/awx/ui/src/screens/Credential/shared/CredentialPlugins/CredentialPluginTestAlert.js @@ -1,7 +1,6 @@ import React, { useEffect, useState } from 'react'; import { useLingui } from '@lingui/react/macro'; -import { string, shape } from 'prop-types'; import { Alert, AlertActionCloseButton, @@ -73,10 +72,4 @@ function CredentialPluginTestAlert({ ); } -CredentialPluginTestAlert.propTypes = { - credentialName: string.isRequired, - successResponse: shape({}), - errorResponse: shape({}), -}; - export default CredentialPluginTestAlert; diff --git a/awx/ui/src/screens/Credential/shared/ExternalTestModal.js b/awx/ui/src/screens/Credential/shared/ExternalTestModal.js index 43ad6b1b2..97de537bc 100644 --- a/awx/ui/src/screens/Credential/shared/ExternalTestModal.js +++ b/awx/ui/src/screens/Credential/shared/ExternalTestModal.js @@ -1,7 +1,6 @@ import React, { useCallback } from 'react'; import { useLingui } from '@lingui/react/macro'; -import { func, shape } from 'prop-types'; import { Formik } from 'formik'; import { Button, Form, FormGroup, Modal } from '@patternfly/react-core'; import { CredentialsAPI, CredentialTypesAPI } from 'api'; @@ -168,11 +167,4 @@ function ExternalTestModal({ ); } -ExternalTestModal.propType = { - credential: shape({}), - credentialType: shape({}).isRequired, - credentialFormValues: shape({}).isRequired, - onClose: func.isRequired, -}; - export default ExternalTestModal; diff --git a/awx/ui/src/screens/Credential/shared/TypeInputsSubForm.js b/awx/ui/src/screens/Credential/shared/TypeInputsSubForm.js index b295b21a6..08f70fa85 100644 --- a/awx/ui/src/screens/Credential/shared/TypeInputsSubForm.js +++ b/awx/ui/src/screens/Credential/shared/TypeInputsSubForm.js @@ -8,7 +8,6 @@ import { SubFormLayout, } from 'components/FormLayout'; import { CheckboxField } from 'components/FormField'; -import { CredentialType } from 'types'; import { CredentialField, GceFileUploadField } from './CredentialFormFields'; function TypeInputsSubForm({ credentialType }) { @@ -67,8 +66,4 @@ function TypeInputsSubForm({ credentialType }) { ); } -TypeInputsSubForm.propTypes = { - credentialType: CredentialType.isRequired, -}; - export default TypeInputsSubForm; diff --git a/awx/ui/src/screens/CredentialType/CredentialTypeList/CredentialTypeListItem.js b/awx/ui/src/screens/CredentialType/CredentialTypeList/CredentialTypeListItem.js index 14009bd26..a6c904e0f 100644 --- a/awx/ui/src/screens/CredentialType/CredentialTypeList/CredentialTypeListItem.js +++ b/awx/ui/src/screens/CredentialType/CredentialTypeList/CredentialTypeListItem.js @@ -1,12 +1,10 @@ import React from 'react'; -import { string, bool, func } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Link } from 'react-router-dom'; import { Button } from '@patternfly/react-core'; import { Tr, Td } from '@patternfly/react-table'; import { PencilAltIcon } from '@patternfly/react-icons'; import { ActionsTd, ActionItem, TdBreakWord } from 'components/PaginatedTable'; -import { CredentialType } from 'types'; function CredentialTypeListItem({ credentialType, @@ -56,11 +54,4 @@ function CredentialTypeListItem({ ); } -CredentialTypeListItem.prototype = { - credentialType: CredentialType.isRequired, - detailUrl: string.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default CredentialTypeListItem; diff --git a/awx/ui/src/screens/CredentialType/shared/CredentialTypeForm.js b/awx/ui/src/screens/CredentialType/shared/CredentialTypeForm.js index cb1c11beb..21de53f8b 100644 --- a/awx/ui/src/screens/CredentialType/shared/CredentialTypeForm.js +++ b/awx/ui/src/screens/CredentialType/shared/CredentialTypeForm.js @@ -1,5 +1,4 @@ import React from 'react'; -import { func, shape } from 'prop-types'; import { Formik } from 'formik'; import { useLingui } from '@lingui/react/macro'; @@ -89,11 +88,4 @@ function CredentialTypeForm({ ); } -CredentialTypeForm.propTypes = { - credentialType: shape({}), - onCancel: func.isRequired, - onSubmit: func.isRequired, - submitError: shape({}), -}; - export default CredentialTypeForm; diff --git a/awx/ui/src/screens/Dashboard/shared/LineChart.js b/awx/ui/src/screens/Dashboard/shared/LineChart.js index 0b3bdba1b..400eedb8b 100644 --- a/awx/ui/src/screens/Dashboard/shared/LineChart.js +++ b/awx/ui/src/screens/Dashboard/shared/LineChart.js @@ -1,5 +1,4 @@ import React, { useEffect, useCallback } from 'react'; -import { string, number, shape, arrayOf } from 'prop-types'; import * as d3 from 'd3'; import { useLingui } from '@lingui/react/macro'; import { PageContextConsumer } from '@patternfly/react-core'; @@ -286,12 +285,6 @@ function LineChart({ id, data, height, pageContext, jobStatus }) { return
; } -LineChart.propTypes = { - id: string.isRequired, - data: arrayOf(shape({})).isRequired, - height: number.isRequired, -}; - const withPageContext = (Component) => function contextComponent(props) { return ( diff --git a/awx/ui/src/screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentListItem.js b/awx/ui/src/screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentListItem.js index d585a3901..5f34b8c64 100644 --- a/awx/ui/src/screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentListItem.js +++ b/awx/ui/src/screens/ExecutionEnvironment/ExecutionEnvironmentList/ExecutionEnvironmentListItem.js @@ -1,5 +1,4 @@ import React, { useState, useCallback } from 'react'; -import { string, bool, func } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Link } from 'react-router-dom'; import { Button } from '@patternfly/react-core'; @@ -8,7 +7,6 @@ import { PencilAltIcon } from '@patternfly/react-icons'; import { ActionsTd, ActionItem, TdBreakWord } from 'components/PaginatedTable'; import CopyButton from 'components/CopyButton'; -import { ExecutionEnvironment } from 'types'; import { ExecutionEnvironmentsAPI } from 'api'; import { timeOfDay } from 'util/dates'; @@ -132,12 +130,4 @@ function ExecutionEnvironmentListItem({ ); } -ExecutionEnvironmentListItem.prototype = { - executionEnvironment: ExecutionEnvironment.isRequired, - detailUrl: string.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, - onCopy: func.isRequired, -}; - export default ExecutionEnvironmentListItem; diff --git a/awx/ui/src/screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.js b/awx/ui/src/screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.js index 499d70fa6..a6a794580 100644 --- a/awx/ui/src/screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.js +++ b/awx/ui/src/screens/ExecutionEnvironment/shared/ExecutionEnvironmentForm.js @@ -1,5 +1,4 @@ import React, { useCallback, useEffect, useRef } from 'react'; -import { func, shape, bool } from 'prop-types'; import { Formik, useField, useFormikContext } from 'formik'; import { useLingui } from '@lingui/react/macro'; import { Form, FormGroup, Tooltip } from '@patternfly/react-core'; @@ -226,12 +225,4 @@ function ExecutionEnvironmentForm({ ); } -ExecutionEnvironmentForm.propTypes = { - executionEnvironment: shape({}), - onCancel: func.isRequired, - onSubmit: func.isRequired, - submitError: shape({}), - isOrgLookupDisabled: bool, -}; - export default ExecutionEnvironmentForm; diff --git a/awx/ui/src/screens/Host/HostDetail/HostDetail.js b/awx/ui/src/screens/Host/HostDetail/HostDetail.js index 489f8f431..fba8df958 100644 --- a/awx/ui/src/screens/Host/HostDetail/HostDetail.js +++ b/awx/ui/src/screens/Host/HostDetail/HostDetail.js @@ -4,7 +4,6 @@ import { useNavigate } from 'react-router-dom-v5-compat'; import { useLingui } from '@lingui/react/macro'; import { Button } from '@patternfly/react-core'; -import { Host } from 'types'; import { CardBody, CardActionsRow } from 'components/Card'; import AlertModal from 'components/AlertModal'; import ErrorDetail from 'components/ErrorDetail'; @@ -136,8 +135,4 @@ function HostDetail({ host }) { ); } -HostDetail.propTypes = { - host: Host.isRequired, -}; - export default HostDetail; diff --git a/awx/ui/src/screens/Host/HostEdit/HostEdit.js b/awx/ui/src/screens/Host/HostEdit/HostEdit.js index b4518d7af..56a291d3f 100644 --- a/awx/ui/src/screens/Host/HostEdit/HostEdit.js +++ b/awx/ui/src/screens/Host/HostEdit/HostEdit.js @@ -1,5 +1,4 @@ import React, { useState } from 'react'; -import PropTypes from 'prop-types'; import { useNavigate } from 'react-router-dom-v5-compat'; import { CardBody } from 'components/Card'; import HostForm from 'components/HostForm'; @@ -40,8 +39,4 @@ function HostEdit({ host }) { ); } -HostEdit.propTypes = { - host: PropTypes.shape().isRequired, -}; - export default HostEdit; diff --git a/awx/ui/src/screens/Host/HostFacts/HostFacts.js b/awx/ui/src/screens/Host/HostFacts/HostFacts.js index 092429fa9..bbbb8ac01 100644 --- a/awx/ui/src/screens/Host/HostFacts/HostFacts.js +++ b/awx/ui/src/screens/Host/HostFacts/HostFacts.js @@ -1,7 +1,6 @@ import React, { useCallback, useEffect } from 'react'; import { useLingui } from '@lingui/react/macro'; -import { Host } from 'types'; import { CardBody } from 'components/Card'; import { DetailList } from 'components/DetailList'; import { VariablesDetail } from 'components/CodeEditor'; @@ -54,8 +53,4 @@ function HostFacts({ host }) { ); } -HostFacts.propTypes = { - host: Host.isRequired, -}; - export default HostFacts; diff --git a/awx/ui/src/screens/Host/HostGroups/HostGroupItem.js b/awx/ui/src/screens/Host/HostGroups/HostGroupItem.js index 15788d9e5..922f7e0a7 100644 --- a/awx/ui/src/screens/Host/HostGroups/HostGroupItem.js +++ b/awx/ui/src/screens/Host/HostGroups/HostGroupItem.js @@ -1,5 +1,4 @@ import React from 'react'; -import { bool, func, number, oneOfType, string } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; @@ -8,7 +7,6 @@ import { Tr, Td } from '@patternfly/react-table'; import { Link } from 'react-router-dom'; import { PencilAltIcon } from '@patternfly/react-icons'; import { ActionsTd, ActionItem } from 'components/PaginatedTable'; -import { Group } from 'types'; function HostGroupItem({ group, inventoryId, isSelected, onSelect, rowIndex }) { const { t } = useLingui(); @@ -51,11 +49,4 @@ function HostGroupItem({ group, inventoryId, isSelected, onSelect, rowIndex }) { ); } -HostGroupItem.propTypes = { - group: Group.isRequired, - inventoryId: oneOfType([number, string]).isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default HostGroupItem; diff --git a/awx/ui/src/screens/Host/HostList/HostListItem.js b/awx/ui/src/screens/Host/HostList/HostListItem.js index 8a279cd9f..5da8b2107 100644 --- a/awx/ui/src/screens/Host/HostList/HostListItem.js +++ b/awx/ui/src/screens/Host/HostList/HostListItem.js @@ -1,5 +1,4 @@ import React from 'react'; -import { string, bool, func } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; @@ -8,7 +7,6 @@ import { Tr, Td } from '@patternfly/react-table'; import { Link } from 'react-router-dom'; import { PencilAltIcon } from '@patternfly/react-icons'; import { ActionsTd, ActionItem, TdBreakWord } from 'components/PaginatedTable'; -import { Host } from 'types'; import HostToggle from 'components/HostToggle'; import Sparkline from 'components/Sparkline'; @@ -79,11 +77,4 @@ function HostListItem({ host, isSelected, onSelect, detailUrl, rowIndex }) { ); } -HostListItem.propTypes = { - host: Host.isRequired, - detailUrl: string.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default HostListItem; diff --git a/awx/ui/src/screens/Host/HostList/SmartInventoryButton.js b/awx/ui/src/screens/Host/HostList/SmartInventoryButton.js index 3d320954f..d5b25cc23 100644 --- a/awx/ui/src/screens/Host/HostList/SmartInventoryButton.js +++ b/awx/ui/src/screens/Host/HostList/SmartInventoryButton.js @@ -1,5 +1,4 @@ import React from 'react'; -import { bool, func } from 'prop-types'; import { Button, DropdownItem, Tooltip } from '@patternfly/react-core'; import { useLingui } from '@lingui/react/macro'; @@ -67,11 +66,5 @@ function SmartInventoryButton({ ); } -SmartInventoryButton.propTypes = { - hasInvalidKeys: bool, - isDisabled: bool, - onClick: func.isRequired, - hasAnsibleFactsKeys: bool, -}; export default SmartInventoryButton; diff --git a/awx/ui/src/screens/HostMetrics/HostMetricsDeleteButton.js b/awx/ui/src/screens/HostMetrics/HostMetricsDeleteButton.js index 89e84bdd3..3ae52caaf 100644 --- a/awx/ui/src/screens/HostMetrics/HostMetricsDeleteButton.js +++ b/awx/ui/src/screens/HostMetrics/HostMetricsDeleteButton.js @@ -1,5 +1,4 @@ import React, { useState } from 'react'; -import { func, node, string, arrayOf, shape } from 'prop-types'; import styled from 'styled-components'; import { Alert, Badge, Button, Tooltip } from '@patternfly/react-core'; import { useLingui } from '@lingui/react/macro'; @@ -18,10 +17,6 @@ const Label = styled.span` } `; -const ItemToDelete = shape({ - hostname: string.isRequired, -}); - function HostMetricsDeleteButton({ itemsToDelete, pluralizedItemName = 'Items', @@ -191,11 +186,4 @@ function HostMetricsDeleteButton({ ); } -HostMetricsDeleteButton.propTypes = { - onDelete: func.isRequired, - itemsToDelete: arrayOf(ItemToDelete).isRequired, - pluralizedItemName: string, - warningMessage: node, -}; - export default HostMetricsDeleteButton; diff --git a/awx/ui/src/screens/HostMetrics/HostMetricsListItem.js b/awx/ui/src/screens/HostMetrics/HostMetricsListItem.js index 47fbfce91..0cc612612 100644 --- a/awx/ui/src/screens/HostMetrics/HostMetricsListItem.js +++ b/awx/ui/src/screens/HostMetrics/HostMetricsListItem.js @@ -1,9 +1,7 @@ import React from 'react'; import { Tr, Td } from '@patternfly/react-table'; import { formatDateString } from 'util/dates'; -import { HostMetrics } from 'types'; import { useLingui } from '@lingui/react/macro'; -import { bool, func } from 'prop-types'; function HostMetricsListItem({ item, isSelected, onSelect, rowIndex }) { const { t } = useLingui(); @@ -29,10 +27,4 @@ function HostMetricsListItem({ item, isSelected, onSelect, rowIndex }) { ); } -HostMetricsListItem.propTypes = { - item: HostMetrics.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default HostMetricsListItem; diff --git a/awx/ui/src/screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.js b/awx/ui/src/screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.js index c28a09df5..a5eff2bfc 100644 --- a/awx/ui/src/screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.js +++ b/awx/ui/src/screens/InstanceGroup/InstanceGroupList/InstanceGroupListItem.js @@ -1,5 +1,4 @@ import React from 'react'; -import { string, bool, func } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; @@ -14,7 +13,6 @@ import { Tr, Td } from '@patternfly/react-table'; import { PencilAltIcon } from '@patternfly/react-icons'; import styled from 'styled-components'; import { ActionsTd, ActionItem, TdBreakWord } from 'components/PaginatedTable'; -import { InstanceGroup } from 'types'; const Unavailable = styled.span` color: var(--pf-global--danger-color--200); @@ -98,11 +96,4 @@ function InstanceGroupListItem({ ); } -InstanceGroupListItem.prototype = { - instanceGroup: InstanceGroup.isRequired, - detailUrl: string.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default InstanceGroupListItem; diff --git a/awx/ui/src/screens/InstanceGroup/Instances/InstanceListItem.js b/awx/ui/src/screens/InstanceGroup/Instances/InstanceListItem.js index f9ea196fa..02089a164 100644 --- a/awx/ui/src/screens/InstanceGroup/Instances/InstanceListItem.js +++ b/awx/ui/src/screens/InstanceGroup/Instances/InstanceListItem.js @@ -1,7 +1,6 @@ import React, { useState, useCallback } from 'react'; import { Link } from 'react-router-dom'; import { useParams } from 'react-router-dom-v5-compat'; -import { bool, func } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import styled from 'styled-components'; @@ -19,7 +18,6 @@ import { formatDateString } from 'util/dates'; import { ActionsTd, ActionItem } from 'components/PaginatedTable'; import InstanceToggle from 'components/InstanceToggle'; import StatusLabel from 'components/StatusLabel'; -import { Instance } from 'types'; import useRequest, { useDismissableError } from 'hooks/useRequest'; import useDebounce from 'hooks/useDebounce'; import computeForks from 'util/computeForks'; @@ -266,10 +264,4 @@ function InstanceListItem({ ); } -InstanceListItem.prototype = { - instance: Instance.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default InstanceListItem; diff --git a/awx/ui/src/screens/InstanceGroup/shared/ContainerGroupForm.js b/awx/ui/src/screens/InstanceGroup/shared/ContainerGroupForm.js index 49d91f58b..70be681e4 100644 --- a/awx/ui/src/screens/InstanceGroup/shared/ContainerGroupForm.js +++ b/awx/ui/src/screens/InstanceGroup/shared/ContainerGroupForm.js @@ -1,5 +1,4 @@ import React, { useCallback } from 'react'; -import { func, shape } from 'prop-types'; import { Formik, useField, useFormikContext } from 'formik'; import { useLingui } from '@lingui/react/macro'; @@ -151,12 +150,4 @@ function ContainerGroupForm({ ); } -ContainerGroupForm.propTypes = { - instanceGroup: shape({}), - onCancel: func.isRequired, - onSubmit: func.isRequired, - submitError: shape({}), - initialPodSpec: shape({}), -}; - export default ContainerGroupForm; diff --git a/awx/ui/src/screens/InstanceGroup/shared/InstanceGroupForm.js b/awx/ui/src/screens/InstanceGroup/shared/InstanceGroupForm.js index 7efab01e9..c44647975 100644 --- a/awx/ui/src/screens/InstanceGroup/shared/InstanceGroupForm.js +++ b/awx/ui/src/screens/InstanceGroup/shared/InstanceGroupForm.js @@ -1,5 +1,4 @@ import React from 'react'; -import { func, shape } from 'prop-types'; import { Formik } from 'formik'; import { useLingui } from '@lingui/react/macro'; import { Form } from '@patternfly/react-core'; @@ -97,11 +96,4 @@ function InstanceGroupForm({ ); } -InstanceGroupForm.propTypes = { - instanceGroup: shape({}), - onCancel: func.isRequired, - onSubmit: func.isRequired, - submitError: shape({}), -}; - export default InstanceGroupForm; diff --git a/awx/ui/src/screens/Instances/InstanceList/InstanceListItem.js b/awx/ui/src/screens/Instances/InstanceList/InstanceListItem.js index 791bc5068..4ba1daa90 100644 --- a/awx/ui/src/screens/Instances/InstanceList/InstanceListItem.js +++ b/awx/ui/src/screens/Instances/InstanceList/InstanceListItem.js @@ -1,6 +1,5 @@ import React, { useState, useCallback } from 'react'; import { Link } from 'react-router-dom'; -import { bool, func } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import styled from 'styled-components'; import { @@ -18,7 +17,6 @@ import computeForks from 'util/computeForks'; import { ActionsTd, ActionItem } from 'components/PaginatedTable'; import InstanceToggle from 'components/InstanceToggle'; import StatusLabel from 'components/StatusLabel'; -import { Instance } from 'types'; import useRequest, { useDismissableError } from 'hooks/useRequest'; import useDebounce from 'hooks/useDebounce'; import { InstancesAPI } from 'api'; @@ -283,10 +281,4 @@ function InstanceListItem({ ); } -InstanceListItem.prototype = { - instance: Instance.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default InstanceListItem; diff --git a/awx/ui/src/screens/Inventory/AdvancedInventoryHostDetail/AdvancedInventoryHostDetail.js b/awx/ui/src/screens/Inventory/AdvancedInventoryHostDetail/AdvancedInventoryHostDetail.js index 651cc9915..c00b1b7cd 100644 --- a/awx/ui/src/screens/Inventory/AdvancedInventoryHostDetail/AdvancedInventoryHostDetail.js +++ b/awx/ui/src/screens/Inventory/AdvancedInventoryHostDetail/AdvancedInventoryHostDetail.js @@ -2,7 +2,6 @@ import React from 'react'; import { Link } from 'react-router-dom'; import { useParams } from 'react-router-dom-v5-compat'; import { useLingui } from '@lingui/react/macro'; -import { Host } from 'types'; import { CardBody } from 'components/Card'; import { Detail, DetailList, UserDateDetail } from 'components/DetailList'; import Sparkline from 'components/Sparkline'; @@ -71,8 +70,4 @@ function AdvancedInventoryHostDetail({ host }) { ); } -AdvancedInventoryHostDetail.propTypes = { - host: Host.isRequired, -}; - export default AdvancedInventoryHostDetail; diff --git a/awx/ui/src/screens/Inventory/AdvancedInventoryHosts/AdvancedInventoryHostList.js b/awx/ui/src/screens/Inventory/AdvancedInventoryHosts/AdvancedInventoryHostList.js index cf87e955b..c18a1c0fe 100644 --- a/awx/ui/src/screens/Inventory/AdvancedInventoryHosts/AdvancedInventoryHostList.js +++ b/awx/ui/src/screens/Inventory/AdvancedInventoryHosts/AdvancedInventoryHostList.js @@ -11,7 +11,6 @@ import useRequest from 'hooks/useRequest'; import useSelected from 'hooks/useSelected'; import { getQSConfig, parseQueryString } from 'util/qs'; import { InventoriesAPI } from 'api'; -import { Inventory } from 'types'; import AdHocCommands from 'components/AdHocCommands/AdHocCommands'; import AdvancedInventoryHostListItem from './AdvancedInventoryHostListItem'; @@ -133,8 +132,4 @@ function AdvancedInventoryHostList({ inventory }) { ); } -AdvancedInventoryHostList.propTypes = { - inventory: Inventory.isRequired, -}; - export default AdvancedInventoryHostList; diff --git a/awx/ui/src/screens/Inventory/AdvancedInventoryHosts/AdvancedInventoryHostListItem.js b/awx/ui/src/screens/Inventory/AdvancedInventoryHosts/AdvancedInventoryHostListItem.js index aebfab8f6..437f99256 100644 --- a/awx/ui/src/screens/Inventory/AdvancedInventoryHosts/AdvancedInventoryHostListItem.js +++ b/awx/ui/src/screens/Inventory/AdvancedInventoryHosts/AdvancedInventoryHostListItem.js @@ -1,10 +1,8 @@ import React from 'react'; import { Link } from 'react-router-dom'; -import { string, bool, func } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Tr, Td } from '@patternfly/react-table'; import Sparkline from 'components/Sparkline'; -import { Host } from 'types'; function AdvancedInventoryHostListItem({ detailUrl, @@ -49,11 +47,4 @@ function AdvancedInventoryHostListItem({ ); } -AdvancedInventoryHostListItem.propTypes = { - detailUrl: string.isRequired, - host: Host.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default AdvancedInventoryHostListItem; diff --git a/awx/ui/src/screens/Inventory/AdvancedInventoryHosts/AdvancedInventoryHosts.js b/awx/ui/src/screens/Inventory/AdvancedInventoryHosts/AdvancedInventoryHosts.js index d30713532..5c9ee68a5 100644 --- a/awx/ui/src/screens/Inventory/AdvancedInventoryHosts/AdvancedInventoryHosts.js +++ b/awx/ui/src/screens/Inventory/AdvancedInventoryHosts/AdvancedInventoryHosts.js @@ -1,6 +1,5 @@ import React from 'react'; import { Routes, Route } from 'react-router-dom-v5-compat'; -import { Inventory } from 'types'; import AdvancedInventoryHostList from './AdvancedInventoryHostList'; import AdvancedInventoryHost from '../AdvancedInventoryHost'; @@ -25,8 +24,4 @@ function AdvancedInventoryHosts({ inventory, setBreadcrumb }) { ); } -AdvancedInventoryHosts.propTypes = { - inventory: Inventory.isRequired, -}; - export default AdvancedInventoryHosts; diff --git a/awx/ui/src/screens/Inventory/ConstructedInventoryDetail/ConstructedInventoryDetail.js b/awx/ui/src/screens/Inventory/ConstructedInventoryDetail/ConstructedInventoryDetail.js index 09687f978..1cf71d975 100644 --- a/awx/ui/src/screens/Inventory/ConstructedInventoryDetail/ConstructedInventoryDetail.js +++ b/awx/ui/src/screens/Inventory/ConstructedInventoryDetail/ConstructedInventoryDetail.js @@ -15,7 +15,6 @@ import { Tooltip, } from '@patternfly/react-core'; import { InventoriesAPI, ConstructedInventoriesAPI } from 'api'; -import { Inventory } from 'types'; import { formatDateString } from 'util/dates'; import { relatedResourceDeleteRequests } from 'util/getRelatedResourceDeleteDetails'; import useRequest, { useDismissableError } from 'hooks/useRequest'; @@ -367,8 +366,4 @@ function ConstructedInventoryDetail({ inventory }) { ); } -ConstructedInventoryDetail.propTypes = { - inventory: Inventory.isRequired, -}; - export default ConstructedInventoryDetail; diff --git a/awx/ui/src/screens/Inventory/ConstructedInventoryDetail/ConstructedInventorySyncButton.js b/awx/ui/src/screens/Inventory/ConstructedInventoryDetail/ConstructedInventorySyncButton.js index 4976db3a4..d03b2d408 100644 --- a/awx/ui/src/screens/Inventory/ConstructedInventoryDetail/ConstructedInventorySyncButton.js +++ b/awx/ui/src/screens/Inventory/ConstructedInventoryDetail/ConstructedInventorySyncButton.js @@ -1,6 +1,5 @@ import React, { useCallback } from 'react'; import { useLingui } from '@lingui/react/macro'; -import PropTypes from 'prop-types'; import { Button, Tooltip } from '@patternfly/react-core'; import useRequest, { useDismissableError } from 'hooks/useRequest'; import AlertModal from 'components/AlertModal/AlertModal'; @@ -53,8 +52,4 @@ function ConstructedInventorySyncButton({ inventoryId }) { ); } -ConstructedInventorySyncButton.propTypes = { - inventoryId: PropTypes.number.isRequired, -}; - export default ConstructedInventorySyncButton; diff --git a/awx/ui/src/screens/Inventory/FederatedInventoryDetail/FederatedInventoryDetail.js b/awx/ui/src/screens/Inventory/FederatedInventoryDetail/FederatedInventoryDetail.js index 6f6829384..5df78450b 100644 --- a/awx/ui/src/screens/Inventory/FederatedInventoryDetail/FederatedInventoryDetail.js +++ b/awx/ui/src/screens/Inventory/FederatedInventoryDetail/FederatedInventoryDetail.js @@ -10,7 +10,6 @@ import { Chip, } from '@patternfly/react-core'; import { InventoriesAPI, FederatedInventoriesAPI } from 'api'; -import { Inventory } from 'types'; import { relatedResourceDeleteRequests } from 'util/getRelatedResourceDeleteDetails'; import useRequest, { useDismissableError } from 'hooks/useRequest'; import AlertModal from 'components/AlertModal'; @@ -209,8 +208,4 @@ function FederatedInventoryDetail({ inventory }) { ); } -FederatedInventoryDetail.propTypes = { - inventory: Inventory.isRequired, -}; - export default FederatedInventoryDetail; diff --git a/awx/ui/src/screens/Inventory/FederatedInventoryEdit/FederatedInventoryEdit.js b/awx/ui/src/screens/Inventory/FederatedInventoryEdit/FederatedInventoryEdit.js index b5070aa6a..fbedef859 100644 --- a/awx/ui/src/screens/Inventory/FederatedInventoryEdit/FederatedInventoryEdit.js +++ b/awx/ui/src/screens/Inventory/FederatedInventoryEdit/FederatedInventoryEdit.js @@ -1,7 +1,6 @@ import React, { useCallback, useEffect, useState } from 'react'; import { useNavigate } from 'react-router-dom-v5-compat'; import { Card, PageSection } from '@patternfly/react-core'; -import { Inventory } from 'types'; import { FederatedInventoriesAPI, InventoriesAPI } from 'api'; import { CardBody } from 'components/Card'; import ContentLoading from 'components/ContentLoading'; @@ -118,8 +117,4 @@ function FederatedInventoryEdit({ inventory }) { ); } -FederatedInventoryEdit.propTypes = { - inventory: Inventory.isRequired, -}; - export default FederatedInventoryEdit; diff --git a/awx/ui/src/screens/Inventory/InventoryDetail/InventoryDetail.js b/awx/ui/src/screens/Inventory/InventoryDetail/InventoryDetail.js index f1b6c587d..01701eda2 100644 --- a/awx/ui/src/screens/Inventory/InventoryDetail/InventoryDetail.js +++ b/awx/ui/src/screens/Inventory/InventoryDetail/InventoryDetail.js @@ -22,7 +22,6 @@ import ContentLoading from 'components/ContentLoading'; import ChipGroup from 'components/ChipGroup'; import { InventoriesAPI } from 'api'; import useRequest, { useDismissableError } from 'hooks/useRequest'; -import { Inventory } from 'types'; import { relatedResourceDeleteRequests } from 'util/getRelatedResourceDeleteDetails'; import InstanceGroupLabels from 'components/InstanceGroupLabels'; import getHelpText from '../shared/Inventory.helptext'; @@ -210,8 +209,4 @@ function InventoryDetail({ inventory }) { ); } -InventoryDetail.propTypes = { - inventory: Inventory.isRequired, -}; - export default InventoryDetail; diff --git a/awx/ui/src/screens/Inventory/InventoryEdit/InventoryEdit.js b/awx/ui/src/screens/Inventory/InventoryEdit/InventoryEdit.js index 7c32fa885..c1679cd8e 100644 --- a/awx/ui/src/screens/Inventory/InventoryEdit/InventoryEdit.js +++ b/awx/ui/src/screens/Inventory/InventoryEdit/InventoryEdit.js @@ -1,6 +1,5 @@ import React, { useState, useEffect } from 'react'; import { useLocation, useNavigate } from 'react-router-dom-v5-compat'; -import { object } from 'prop-types'; import { CardBody } from 'components/Card'; import { InventoriesAPI } from 'api'; @@ -109,9 +108,5 @@ function InventoryEdit({ inventory }) { ); } -InventoryEdit.propType = { - inventory: object.isRequired, -}; - export { InventoryEdit as _InventoryEdit }; export default InventoryEdit; diff --git a/awx/ui/src/screens/Inventory/InventoryGroupHosts/InventoryGroupHostListItem.js b/awx/ui/src/screens/Inventory/InventoryGroupHosts/InventoryGroupHostListItem.js index f4982d4e8..92bd809bd 100644 --- a/awx/ui/src/screens/Inventory/InventoryGroupHosts/InventoryGroupHostListItem.js +++ b/awx/ui/src/screens/Inventory/InventoryGroupHosts/InventoryGroupHostListItem.js @@ -1,7 +1,6 @@ import React from 'react'; import { Link } from 'react-router-dom'; import { useParams } from 'react-router-dom-v5-compat'; -import { string, bool, func, number } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Button, Tooltip } from '@patternfly/react-core'; import { PencilAltIcon } from '@patternfly/react-icons'; @@ -10,7 +9,6 @@ import { Td, Tr } from '@patternfly/react-table'; import { ActionItem, ActionsTd } from 'components/PaginatedTable'; import HostToggle from 'components/HostToggle'; import Sparkline from 'components/Sparkline'; -import { Host } from 'types'; function InventoryGroupHostListItem({ detailUrl, @@ -83,13 +81,4 @@ function InventoryGroupHostListItem({ ); } -InventoryGroupHostListItem.propTypes = { - detailUrl: string.isRequired, - editUrl: string.isRequired, - rowIndex: number.isRequired, - host: Host.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default InventoryGroupHostListItem; diff --git a/awx/ui/src/screens/Inventory/InventoryGroups/InventoryGroupItem.js b/awx/ui/src/screens/Inventory/InventoryGroups/InventoryGroupItem.js index 678ccb7de..e16501015 100644 --- a/awx/ui/src/screens/Inventory/InventoryGroups/InventoryGroupItem.js +++ b/awx/ui/src/screens/Inventory/InventoryGroups/InventoryGroupItem.js @@ -1,5 +1,4 @@ import React from 'react'; -import { bool, func } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Button } from '@patternfly/react-core'; @@ -9,7 +8,6 @@ import { Link } from 'react-router-dom'; import { useParams } from 'react-router-dom-v5-compat'; import { PencilAltIcon } from '@patternfly/react-icons'; import { ActionsTd, ActionItem } from 'components/PaginatedTable'; -import { Group } from 'types'; function InventoryGroupItem({ group, isSelected, onSelect, rowIndex }) { const { t } = useLingui(); @@ -55,10 +53,4 @@ function InventoryGroupItem({ group, isSelected, onSelect, rowIndex }) { ); } -InventoryGroupItem.propTypes = { - group: Group.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default InventoryGroupItem; diff --git a/awx/ui/src/screens/Inventory/InventoryHostDetail/InventoryHostDetail.js b/awx/ui/src/screens/Inventory/InventoryHostDetail/InventoryHostDetail.js index 6b41fbf57..5f2aa36b4 100644 --- a/awx/ui/src/screens/Inventory/InventoryHostDetail/InventoryHostDetail.js +++ b/awx/ui/src/screens/Inventory/InventoryHostDetail/InventoryHostDetail.js @@ -3,7 +3,6 @@ import { Link } from 'react-router-dom'; import { useNavigate } from 'react-router-dom-v5-compat'; import { useLingui } from '@lingui/react/macro'; import { Button } from '@patternfly/react-core'; -import { Host } from 'types'; import { CardBody, CardActionsRow } from 'components/Card'; import AlertModal from 'components/AlertModal'; import ErrorDetail from 'components/ErrorDetail'; @@ -129,8 +128,4 @@ function InventoryHostDetail({ host }) { ); } -InventoryHostDetail.propTypes = { - host: Host.isRequired, -}; - export default InventoryHostDetail; diff --git a/awx/ui/src/screens/Inventory/InventoryHostEdit/InventoryHostEdit.js b/awx/ui/src/screens/Inventory/InventoryHostEdit/InventoryHostEdit.js index f0b66410b..6b519cc82 100644 --- a/awx/ui/src/screens/Inventory/InventoryHostEdit/InventoryHostEdit.js +++ b/awx/ui/src/screens/Inventory/InventoryHostEdit/InventoryHostEdit.js @@ -1,5 +1,4 @@ import React, { useState } from 'react'; -import PropTypes from 'prop-types'; import { useNavigate } from 'react-router-dom-v5-compat'; import { CardBody } from 'components/Card'; import HostForm from 'components/HostForm'; @@ -37,8 +36,4 @@ function InventoryHostEdit({ host, inventory }) { ); } -InventoryHostEdit.propTypes = { - host: PropTypes.shape().isRequired, -}; - export default InventoryHostEdit; diff --git a/awx/ui/src/screens/Inventory/InventoryHostFacts/InventoryHostFacts.js b/awx/ui/src/screens/Inventory/InventoryHostFacts/InventoryHostFacts.js index 223735a36..2f51e6aaf 100644 --- a/awx/ui/src/screens/Inventory/InventoryHostFacts/InventoryHostFacts.js +++ b/awx/ui/src/screens/Inventory/InventoryHostFacts/InventoryHostFacts.js @@ -1,6 +1,5 @@ import React, { useCallback, useEffect } from 'react'; import { useLingui } from '@lingui/react/macro'; -import { Host } from 'types'; import { CardBody } from 'components/Card'; import { DetailList } from 'components/DetailList'; import { VariablesDetail } from 'components/CodeEditor'; @@ -47,8 +46,4 @@ function InventoryHostFacts({ host }) { ); } -InventoryHostFacts.propTypes = { - host: Host.isRequired, -}; - export default InventoryHostFacts; diff --git a/awx/ui/src/screens/Inventory/InventoryHostGroups/InventoryHostGroupItem.js b/awx/ui/src/screens/Inventory/InventoryHostGroups/InventoryHostGroupItem.js index a94d17d5e..cf638a585 100644 --- a/awx/ui/src/screens/Inventory/InventoryHostGroups/InventoryHostGroupItem.js +++ b/awx/ui/src/screens/Inventory/InventoryHostGroups/InventoryHostGroupItem.js @@ -1,5 +1,4 @@ import React from 'react'; -import { bool, func, number, oneOfType, string } from 'prop-types'; import { Button } from '@patternfly/react-core'; import { Tr, Td } from '@patternfly/react-table'; import { useLingui } from '@lingui/react/macro'; @@ -7,7 +6,6 @@ import { useLingui } from '@lingui/react/macro'; import { Link } from 'react-router-dom'; import { PencilAltIcon } from '@patternfly/react-icons'; import { ActionsTd, ActionItem } from 'components/PaginatedTable'; -import { Group } from 'types'; function InventoryHostGroupItem({ group, @@ -58,11 +56,4 @@ function InventoryHostGroupItem({ ); } -InventoryHostGroupItem.propTypes = { - group: Group.isRequired, - inventoryId: oneOfType([number, string]).isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default InventoryHostGroupItem; diff --git a/awx/ui/src/screens/Inventory/InventoryHosts/InventoryHostItem.js b/awx/ui/src/screens/Inventory/InventoryHosts/InventoryHostItem.js index f38297518..963ce1705 100644 --- a/awx/ui/src/screens/Inventory/InventoryHosts/InventoryHostItem.js +++ b/awx/ui/src/screens/Inventory/InventoryHosts/InventoryHostItem.js @@ -1,5 +1,4 @@ import React, { useCallback } from 'react'; -import { string, bool, func } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Tr, Td } from '@patternfly/react-table'; import { Link } from 'react-router-dom'; @@ -12,7 +11,6 @@ import ErrorDetail from 'components/ErrorDetail'; import HostToggle from 'components/HostToggle'; import { ActionsTd, ActionItem, TdBreakWord } from 'components/PaginatedTable'; import useRequest, { useDismissableError } from 'hooks/useRequest'; -import { Host } from 'types'; import Sparkline from 'components/Sparkline'; function InventoryHostItem({ @@ -139,11 +137,4 @@ function InventoryHostItem({ ); } -InventoryHostItem.propTypes = { - detailUrl: string.isRequired, - host: Host.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default InventoryHostItem; diff --git a/awx/ui/src/screens/Inventory/InventoryList/InventoryListItem.js b/awx/ui/src/screens/Inventory/InventoryList/InventoryListItem.js index 087d0231e..53b2be573 100644 --- a/awx/ui/src/screens/Inventory/InventoryList/InventoryListItem.js +++ b/awx/ui/src/screens/Inventory/InventoryList/InventoryListItem.js @@ -1,5 +1,4 @@ import React, { useState, useCallback } from 'react'; -import { bool, func } from 'prop-types'; import { Button, Label } from '@patternfly/react-core'; import { Tr, Td } from '@patternfly/react-table'; @@ -8,7 +7,6 @@ import { Plural, useLingui } from '@lingui/react/macro'; import { Link } from 'react-router-dom'; import { timeOfDay } from 'util/dates'; import { InventoriesAPI } from 'api'; -import { Inventory } from 'types'; import { ActionsTd, ActionItem, TdBreakWord } from 'components/PaginatedTable'; import CopyButton from 'components/CopyButton'; import StatusLabel from 'components/StatusLabel'; @@ -23,11 +21,6 @@ function InventoryListItem({ fetchInventories, }) { const { t } = useLingui(); - InventoryListItem.propTypes = { - inventory: Inventory.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, - }; const [isCopying, setIsCopying] = useState(false); const copyInventory = useCallback(async () => { diff --git a/awx/ui/src/screens/Inventory/InventoryRelatedGroups/InventoryRelatedGroupListItem.js b/awx/ui/src/screens/Inventory/InventoryRelatedGroups/InventoryRelatedGroupListItem.js index c64e1094a..66c0438c6 100644 --- a/awx/ui/src/screens/Inventory/InventoryRelatedGroups/InventoryRelatedGroupListItem.js +++ b/awx/ui/src/screens/Inventory/InventoryRelatedGroups/InventoryRelatedGroupListItem.js @@ -1,7 +1,6 @@ import React from 'react'; import { Link } from 'react-router-dom'; import { useParams } from 'react-router-dom-v5-compat'; -import { string, bool, func, number } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; @@ -9,7 +8,6 @@ import { Td, Tr } from '@patternfly/react-table'; import { Button } from '@patternfly/react-core'; import { PencilAltIcon } from '@patternfly/react-icons'; -import { Group } from 'types'; import { ActionItem, ActionsTd } from 'components/PaginatedTable'; function InventoryRelatedGroupListItem({ @@ -64,13 +62,4 @@ function InventoryRelatedGroupListItem({ ); } -InventoryRelatedGroupListItem.propTypes = { - detailUrl: string.isRequired, - editUrl: string.isRequired, - group: Group.isRequired, - rowIndex: number.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default InventoryRelatedGroupListItem; diff --git a/awx/ui/src/screens/Inventory/SmartInventoryDetail/SmartInventoryDetail.js b/awx/ui/src/screens/Inventory/SmartInventoryDetail/SmartInventoryDetail.js index 2ed176fe1..203ccaa11 100644 --- a/awx/ui/src/screens/Inventory/SmartInventoryDetail/SmartInventoryDetail.js +++ b/awx/ui/src/screens/Inventory/SmartInventoryDetail/SmartInventoryDetail.js @@ -5,7 +5,6 @@ import { useNavigate } from 'react-router-dom-v5-compat'; import { useLingui } from '@lingui/react/macro'; import { Button, Label } from '@patternfly/react-core'; -import { Inventory } from 'types'; import { InventoriesAPI, UnifiedJobsAPI } from 'api'; import useRequest, { useDismissableError } from 'hooks/useRequest'; @@ -184,8 +183,4 @@ function SmartInventoryDetail({ inventory }) { ); } -SmartInventoryDetail.propTypes = { - inventory: Inventory.isRequired, -}; - export default SmartInventoryDetail; diff --git a/awx/ui/src/screens/Inventory/SmartInventoryEdit/SmartInventoryEdit.js b/awx/ui/src/screens/Inventory/SmartInventoryEdit/SmartInventoryEdit.js index 3a15c6ca7..df4703e42 100644 --- a/awx/ui/src/screens/Inventory/SmartInventoryEdit/SmartInventoryEdit.js +++ b/awx/ui/src/screens/Inventory/SmartInventoryEdit/SmartInventoryEdit.js @@ -1,6 +1,5 @@ import React, { useCallback, useEffect } from 'react'; import { useNavigate } from 'react-router-dom-v5-compat'; -import { Inventory } from 'types'; import useRequest from 'hooks/useRequest'; import { InventoriesAPI } from 'api'; import { CardBody } from 'components/Card'; @@ -104,8 +103,4 @@ function SmartInventoryEdit({ inventory }) { ); } -SmartInventoryEdit.propTypes = { - inventory: Inventory.isRequired, -}; - export default SmartInventoryEdit; diff --git a/awx/ui/src/screens/Inventory/shared/ConstructedInventoryForm.js b/awx/ui/src/screens/Inventory/shared/ConstructedInventoryForm.js index 2f58e3de4..ccb8a3ea6 100644 --- a/awx/ui/src/screens/Inventory/shared/ConstructedInventoryForm.js +++ b/awx/ui/src/screens/Inventory/shared/ConstructedInventoryForm.js @@ -1,6 +1,5 @@ import React, { useCallback } from 'react'; import { Formik, useField, useFormikContext } from 'formik'; -import { func, shape } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { minMaxValue, required } from 'util/validators'; import { Form, FormGroup } from '@patternfly/react-core'; @@ -194,10 +193,4 @@ function ConstructedInventoryForm({ ); } -ConstructedInventoryForm.propTypes = { - onCancel: func.isRequired, - onSubmit: func.isRequired, - submitError: shape({}), -}; - export default ConstructedInventoryForm; diff --git a/awx/ui/src/screens/Inventory/shared/FederatedInventoryForm.js b/awx/ui/src/screens/Inventory/shared/FederatedInventoryForm.js index 5ded87ec4..fd76853b9 100644 --- a/awx/ui/src/screens/Inventory/shared/FederatedInventoryForm.js +++ b/awx/ui/src/screens/Inventory/shared/FederatedInventoryForm.js @@ -1,6 +1,5 @@ import React, { useCallback } from 'react'; import { Formik, useField, useFormikContext } from 'formik'; -import { func, shape } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { required } from 'util/validators'; import { Form, FormGroup } from '@patternfly/react-core'; @@ -137,10 +136,4 @@ function FederatedInventoryForm({ ); } -FederatedInventoryForm.propTypes = { - onCancel: func.isRequired, - onSubmit: func.isRequired, - submitError: shape({}), -}; - export default FederatedInventoryForm; diff --git a/awx/ui/src/screens/Inventory/shared/InventoryForm.js b/awx/ui/src/screens/Inventory/shared/InventoryForm.js index b91fcc9c8..30fd1079e 100644 --- a/awx/ui/src/screens/Inventory/shared/InventoryForm.js +++ b/awx/ui/src/screens/Inventory/shared/InventoryForm.js @@ -1,6 +1,5 @@ import React, { useCallback, useState } from 'react'; import { Formik, useField, useFormikContext } from 'formik'; -import { func, shape } from 'prop-types'; import { Form, FormGroup } from '@patternfly/react-core'; import { VariablesField } from 'components/CodeEditor'; import Popover from 'components/Popover'; @@ -159,12 +158,4 @@ function InventoryForm({ ); } -InventoryForm.propType = { - handleSubmit: func.isRequired, - handleCancel: func.isRequired, - instanceGroups: shape(), - inventory: shape(), - submitError: shape(), -}; - export default InventoryForm; diff --git a/awx/ui/src/screens/Inventory/shared/InventoryGroupsDeleteModal.js b/awx/ui/src/screens/Inventory/shared/InventoryGroupsDeleteModal.js index 14c73c0f5..fa28fc233 100644 --- a/awx/ui/src/screens/Inventory/shared/InventoryGroupsDeleteModal.js +++ b/awx/ui/src/screens/Inventory/shared/InventoryGroupsDeleteModal.js @@ -1,12 +1,10 @@ import React, { useState, useContext, useEffect } from 'react'; import { useParams } from 'react-router-dom-v5-compat'; -import { func, bool, arrayOf } from 'prop-types'; import { Plural, useLingui } from '@lingui/react/macro'; import { Button, Radio, DropdownItem } from '@patternfly/react-core'; import styled from 'styled-components'; import { KebabifiedContext } from 'contexts/Kebabified'; import { GroupsAPI, InventoriesAPI } from 'api'; -import { Group } from 'types'; import ErrorDetail from 'components/ErrorDetail'; import AlertModal from 'components/AlertModal'; @@ -164,10 +162,4 @@ const InventoryGroupsDeleteModal = ({ ); }; -InventoryGroupsDeleteModal.propTypes = { - onAfterDelete: func.isRequired, - groups: arrayOf(Group), - isDisabled: bool.isRequired, -}; - export default InventoryGroupsDeleteModal; diff --git a/awx/ui/src/screens/Inventory/shared/InventorySourceForm.js b/awx/ui/src/screens/Inventory/shared/InventorySourceForm.js index 74e6b55e4..bb4ae498d 100644 --- a/awx/ui/src/screens/Inventory/shared/InventorySourceForm.js +++ b/awx/ui/src/screens/Inventory/shared/InventorySourceForm.js @@ -1,7 +1,6 @@ import React, { useEffect, useCallback } from 'react'; import { useLingui } from '@lingui/react/macro'; import { Formik, useField, useFormikContext } from 'formik'; -import { func, shape } from 'prop-types'; import { Form, FormGroup, Title } from '@patternfly/react-core'; import { InventorySourcesAPI } from 'api'; import useRequest from 'hooks/useRequest'; @@ -342,10 +341,4 @@ const InventorySourceForm = ({ ); }; -InventorySourceForm.propTypes = { - onCancel: func.isRequired, - onSubmit: func.isRequired, - submitError: shape({}), -}; - export default InventorySourceForm; diff --git a/awx/ui/src/screens/Inventory/shared/InventorySourceSyncButton.js b/awx/ui/src/screens/Inventory/shared/InventorySourceSyncButton.js index 0f6d9daf4..3f7a4233a 100644 --- a/awx/ui/src/screens/Inventory/shared/InventorySourceSyncButton.js +++ b/awx/ui/src/screens/Inventory/shared/InventorySourceSyncButton.js @@ -1,7 +1,6 @@ import React, { useCallback } from 'react'; import { useLingui } from '@lingui/react/macro'; -import PropTypes from 'prop-types'; import { Button, Tooltip } from '@patternfly/react-core'; import { SyncIcon } from '@patternfly/react-icons'; import useRequest, { useDismissableError } from 'hooks/useRequest'; @@ -58,9 +57,4 @@ function InventorySourceSyncButton({ source = {}, icon = true }) { ); } -InventorySourceSyncButton.propTypes = { - source: PropTypes.shape({}), - icon: PropTypes.bool, -}; - export default InventorySourceSyncButton; diff --git a/awx/ui/src/screens/Inventory/shared/SmartInventoryForm.js b/awx/ui/src/screens/Inventory/shared/SmartInventoryForm.js index c30fc4b33..664c1a643 100644 --- a/awx/ui/src/screens/Inventory/shared/SmartInventoryForm.js +++ b/awx/ui/src/screens/Inventory/shared/SmartInventoryForm.js @@ -1,9 +1,7 @@ import React, { useEffect, useCallback } from 'react'; import { Formik, useField, useFormikContext } from 'formik'; import { useLocation } from 'react-router-dom'; -import { func, shape, arrayOf } from 'prop-types'; import { Form } from '@patternfly/react-core'; -import { InstanceGroup } from 'types'; import { VariablesField } from 'components/CodeEditor'; import ContentError from 'components/ContentError'; import ContentLoading from 'components/ContentLoading'; @@ -181,12 +179,4 @@ function SmartInventoryForm({ ); } -SmartInventoryForm.propTypes = { - instanceGroups: arrayOf(InstanceGroup), - inventory: shape({}), - onCancel: func.isRequired, - onSubmit: func.isRequired, - submitError: shape({}), -}; - export default SmartInventoryForm; diff --git a/awx/ui/src/screens/Job/JobDetail/JobDetail.js b/awx/ui/src/screens/Job/JobDetail/JobDetail.js index d7ada6339..290720151 100644 --- a/awx/ui/src/screens/Job/JobDetail/JobDetail.js +++ b/awx/ui/src/screens/Job/JobDetail/JobDetail.js @@ -28,7 +28,6 @@ import ExecutionEnvironmentDetail from 'components/ExecutionEnvironmentDetail'; import { VERBOSITY } from 'components/VerbositySelectField'; import { getJobModel, isJobRunning } from 'util/jobs'; import { formatDateString } from 'util/dates'; -import { Job } from 'types'; import getJobHelpText from '../Job.helptext'; const StatusDetailValue = styled.div` @@ -682,10 +681,6 @@ function JobDetail({ job, inventorySourceLabels }) { ); } -JobDetail.propTypes = { - job: Job.isRequired, -}; - export default JobDetail; function validateReactNode(value) { diff --git a/awx/ui/src/screens/Job/JobOutput/HostEventModal.js b/awx/ui/src/screens/Job/JobOutput/HostEventModal.js index dc92b3fea..bdecee11f 100644 --- a/awx/ui/src/screens/Job/JobOutput/HostEventModal.js +++ b/awx/ui/src/screens/Job/JobOutput/HostEventModal.js @@ -1,6 +1,5 @@ import React, { useEffect, useState } from 'react'; import { Modal, Tab, Tabs, TabTitleText } from '@patternfly/react-core'; -import PropTypes from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { encode } from 'html-entities'; @@ -217,9 +216,3 @@ function HostEventModal({ onClose, hostEvent = defaultHostEvent, isOpen = false } export default HostEventModal; - -HostEventModal.propTypes = { - onClose: PropTypes.func.isRequired, - hostEvent: PropTypes.shape({}), - isOpen: PropTypes.bool, -}; diff --git a/awx/ui/src/screens/Job/JobOutput/shared/OutputToolbar.js b/awx/ui/src/screens/Job/JobOutput/shared/OutputToolbar.js index 684eafcdb..5cf478458 100644 --- a/awx/ui/src/screens/Job/JobOutput/shared/OutputToolbar.js +++ b/awx/ui/src/screens/Job/JobOutput/shared/OutputToolbar.js @@ -1,7 +1,6 @@ import React, { useEffect, useState, useRef } from 'react'; import styled from 'styled-components'; import { calculateElapsed, secondsToHHMMSS } from 'util/dates'; -import { bool, shape, func } from 'prop-types'; import { DownloadIcon, RocketIcon, @@ -253,10 +252,4 @@ const OutputToolbar = ({ ); }; -OutputToolbar.propTypes = { - isDeleteDisabled: bool, - job: shape({}).isRequired, - onDelete: func.isRequired, -}; - export default OutputToolbar; diff --git a/awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutput.js b/awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutput.js index 8ae734124..d385eacd5 100644 --- a/awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutput.js +++ b/awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutput.js @@ -3,7 +3,6 @@ import { useNavigate } from 'react-router-dom-v5-compat'; import { useLingui } from '@lingui/react/macro'; import styled from 'styled-components'; -import { shape } from 'prop-types'; import { CardBody as PFCardBody } from '@patternfly/react-core'; import { WorkflowDispatchContext, @@ -151,8 +150,4 @@ function WorkflowOutput({ job }) { ); } -WorkflowOutput.propTypes = { - job: shape().isRequired, -}; - export default WorkflowOutput; diff --git a/awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutputLink.js b/awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutputLink.js index 0a671231b..155af3229 100644 --- a/awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutputLink.js +++ b/awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutputLink.js @@ -1,5 +1,4 @@ import React, { useContext, useEffect, useRef, useState } from 'react'; -import { func, shape } from 'prop-types'; import { WorkflowStateContext } from 'contexts/Workflow'; import { generateLine, @@ -67,10 +66,4 @@ function WorkflowOutputLink({ link, mouseEnter, mouseLeave }) { ); } -WorkflowOutputLink.propTypes = { - link: shape().isRequired, - mouseEnter: func.isRequired, - mouseLeave: func.isRequired, -}; - export default WorkflowOutputLink; diff --git a/awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutputNode.js b/awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutputNode.js index 970f7f151..b0000a594 100644 --- a/awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutputNode.js +++ b/awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutputNode.js @@ -3,7 +3,6 @@ import { useNavigate } from 'react-router-dom-v5-compat'; import { useLingui } from '@lingui/react/macro'; import styled from 'styled-components'; -import { func, shape } from 'prop-types'; import { WorkflowStateContext } from 'contexts/Workflow'; import StatusIcon from 'components/StatusIcon'; import { WorkflowNodeTypeLetter } from 'components/Workflow'; @@ -233,10 +232,4 @@ function WorkflowOutputNode({ mouseEnter, mouseLeave, node }) { ); } -WorkflowOutputNode.propTypes = { - mouseEnter: func.isRequired, - mouseLeave: func.isRequired, - node: shape().isRequired, -}; - export default WorkflowOutputNode; diff --git a/awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutputToolbar.js b/awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutputToolbar.js index 62f941e6c..709322295 100644 --- a/awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutputToolbar.js +++ b/awx/ui/src/screens/Job/WorkflowOutput/WorkflowOutputToolbar.js @@ -1,6 +1,5 @@ import React, { useContext } from 'react'; import { useNavigate } from 'react-router-dom-v5-compat'; -import { shape, func, bool } from 'prop-types'; import { Badge as PFBadge, Button, Tooltip } from '@patternfly/react-core'; import { useLingui } from '@lingui/react/macro'; @@ -263,10 +262,4 @@ function WorkflowOutputToolbar({ ); } -WorkflowOutputToolbar.propTypes = { - job: shape().isRequired, - onDelete: func, - isDeleteDisabled: bool, -}; - export default WorkflowOutputToolbar; diff --git a/awx/ui/src/screens/NotificationTemplate/NotificationTemplateEdit/NotificationTemplateEdit.js b/awx/ui/src/screens/NotificationTemplate/NotificationTemplateEdit/NotificationTemplateEdit.js index 0289d62af..94f8974f1 100644 --- a/awx/ui/src/screens/NotificationTemplate/NotificationTemplateEdit/NotificationTemplateEdit.js +++ b/awx/ui/src/screens/NotificationTemplate/NotificationTemplateEdit/NotificationTemplateEdit.js @@ -1,5 +1,4 @@ import React, { useState } from 'react'; -import PropTypes from 'prop-types'; import { useNavigate } from 'react-router-dom-v5-compat'; import { CardBody } from 'components/Card'; import { NotificationTemplatesAPI } from 'api'; @@ -36,9 +35,5 @@ function NotificationTemplateEdit({ template, defaultMessages }) { ); } -NotificationTemplateEdit.propTypes = { - template: PropTypes.shape().isRequired, -}; - export { NotificationTemplateEdit as _NotificationTemplateEdit }; export default NotificationTemplateEdit; diff --git a/awx/ui/src/screens/NotificationTemplate/shared/NotificationTemplateForm.js b/awx/ui/src/screens/NotificationTemplate/shared/NotificationTemplateForm.js index c2541ce16..b0590a7d2 100644 --- a/awx/ui/src/screens/NotificationTemplate/shared/NotificationTemplateForm.js +++ b/awx/ui/src/screens/NotificationTemplate/shared/NotificationTemplateForm.js @@ -1,5 +1,4 @@ import React, { useCallback } from 'react'; -import { shape, func } from 'prop-types'; import { Formik, useField, useFormikContext } from 'formik'; import { useLingui } from '@lingui/react/macro'; import { Form, FormGroup } from '@patternfly/react-core'; @@ -199,14 +198,6 @@ function NotificationTemplateForm({ ); } -NotificationTemplateForm.propTypes = { - template: shape(), - defaultMessages: shape().isRequired, - onSubmit: func.isRequired, - onCancel: func.isRequired, - submitError: shape(), -}; - export default NotificationTemplateForm; function normalizeFields(values, defaultMessages) { diff --git a/awx/ui/src/screens/NotificationTemplate/shared/TypeInputsSubForm.js b/awx/ui/src/screens/NotificationTemplate/shared/TypeInputsSubForm.js index 0c7e618f2..ebfb3a345 100644 --- a/awx/ui/src/screens/NotificationTemplate/shared/TypeInputsSubForm.js +++ b/awx/ui/src/screens/NotificationTemplate/shared/TypeInputsSubForm.js @@ -1,5 +1,4 @@ import React, { useMemo } from 'react'; -import PropTypes from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { useField } from 'formik'; import { FormGroup, InputGroup, Title } from '@patternfly/react-core'; @@ -25,7 +24,6 @@ import { minMaxValue, twilioPhoneNumber, } from 'util/validators'; -import { NotificationType } from 'types'; import Popover from '../../../components/Popover/Popover'; import RevertButton from '../../Setting/shared/RevertButton'; @@ -37,10 +35,6 @@ const PasswordFormGroup = styled(FormGroup)` } `; -const editFieldPropTypes = { - isEdit: PropTypes.bool, -}; - const TypeFields = { email: EmailFields, grafana: GrafanaFields, @@ -66,10 +60,6 @@ function TypeInputsSubForm({ type, isEdit = false }) { ); } -TypeInputsSubForm.propTypes = { - type: NotificationType.isRequired, - isEdit: PropTypes.bool, -}; export default TypeInputsSubForm; @@ -110,14 +100,6 @@ function SecretPasswordField({ ); } -SecretPasswordField.propTypes = { - id: PropTypes.string.isRequired, - label: PropTypes.node.isRequired, - name: PropTypes.string.isRequired, - isEdit: PropTypes.bool, - isRequiredOnCreate: PropTypes.bool, -}; - function EmailFields({ isEdit = false }) { const { t } = useLingui(); const helpText = useMemo(() => ({ @@ -277,9 +259,6 @@ function GrafanaFields({ isEdit = false }) { ); } -EmailFields.propTypes = editFieldPropTypes; - -GrafanaFields.propTypes = editFieldPropTypes; function IRCFields({ isEdit = false }) { const { t } = useLingui(); const helpText = { @@ -338,8 +317,6 @@ function IRCFields({ isEdit = false }) { ); } -IRCFields.propTypes = editFieldPropTypes; - function MattermostFields() { const { t } = useLingui(); return ( @@ -419,8 +396,6 @@ function PagerdutyFields({ isEdit = false }) { ); } -PagerdutyFields.propTypes = editFieldPropTypes; - function RocketChatFields() { const { t } = useLingui(); return ( @@ -500,8 +475,6 @@ function SlackFields({ isEdit = false }) { ); } -SlackFields.propTypes = editFieldPropTypes; - function TwilioFields({ isEdit = false }) { const { t } = useLingui(); const helpText = { @@ -549,8 +522,6 @@ function TwilioFields({ isEdit = false }) { ); } -TwilioFields.propTypes = editFieldPropTypes; - function WebhookFields({ isEdit = false }) { const { t } = useLingui(); const helpText = { @@ -625,5 +596,3 @@ function WebhookFields({ isEdit = false }) { ); } - -WebhookFields.propTypes = editFieldPropTypes; diff --git a/awx/ui/src/screens/Organization/OrganizationEdit/OrganizationEdit.js b/awx/ui/src/screens/Organization/OrganizationEdit/OrganizationEdit.js index 61434a4f0..f5c4b5bef 100644 --- a/awx/ui/src/screens/Organization/OrganizationEdit/OrganizationEdit.js +++ b/awx/ui/src/screens/Organization/OrganizationEdit/OrganizationEdit.js @@ -1,5 +1,4 @@ import React, { useState } from 'react'; -import PropTypes from 'prop-types'; import { useNavigate } from 'react-router-dom-v5-compat'; import { CardBody } from 'components/Card'; import { OrganizationsAPI } from 'api'; @@ -71,9 +70,5 @@ function OrganizationEdit({ organization }) { ); } -OrganizationEdit.propTypes = { - organization: PropTypes.shape().isRequired, -}; - export { OrganizationEdit as _OrganizationEdit }; export default OrganizationEdit; diff --git a/awx/ui/src/screens/Organization/OrganizationExecEnvList/OrganizationExecEnvListItem.js b/awx/ui/src/screens/Organization/OrganizationExecEnvList/OrganizationExecEnvListItem.js index 288bc52de..f28effda4 100644 --- a/awx/ui/src/screens/Organization/OrganizationExecEnvList/OrganizationExecEnvListItem.js +++ b/awx/ui/src/screens/Organization/OrganizationExecEnvList/OrganizationExecEnvListItem.js @@ -1,11 +1,8 @@ import React from 'react'; -import { string } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Link } from 'react-router-dom'; import { Tr, Td } from '@patternfly/react-table'; -import { ExecutionEnvironment } from 'types'; - function OrganizationExecEnvListItem({ executionEnvironment, detailUrl }) { const { t } = useLingui(); return ( @@ -23,9 +20,4 @@ function OrganizationExecEnvListItem({ executionEnvironment, detailUrl }) { ); } -OrganizationExecEnvListItem.prototype = { - executionEnvironment: ExecutionEnvironment.isRequired, - detailUrl: string.isRequired, -}; - export default OrganizationExecEnvListItem; diff --git a/awx/ui/src/screens/Organization/OrganizationList/OrganizationListItem.js b/awx/ui/src/screens/Organization/OrganizationList/OrganizationListItem.js index 05634f932..868a55ebd 100644 --- a/awx/ui/src/screens/Organization/OrganizationList/OrganizationListItem.js +++ b/awx/ui/src/screens/Organization/OrganizationList/OrganizationListItem.js @@ -1,5 +1,4 @@ import React from 'react'; -import { string, bool, func } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Button } from '@patternfly/react-core'; import { Tr, Td } from '@patternfly/react-table'; @@ -9,8 +8,6 @@ import { } from '@patternfly/react-icons'; import { ActionsTd, ActionItem, TdBreakWord } from 'components/PaginatedTable'; -import { Organization } from 'types'; - function OrganizationListItem({ organization, isSelected, @@ -65,11 +62,4 @@ function OrganizationListItem({ ); } -OrganizationListItem.propTypes = { - organization: Organization.isRequired, - detailUrl: string.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default OrganizationListItem; diff --git a/awx/ui/src/screens/Organization/OrganizationTeams/OrganizationTeamList.js b/awx/ui/src/screens/Organization/OrganizationTeams/OrganizationTeamList.js index ceef39f33..a5cd89862 100644 --- a/awx/ui/src/screens/Organization/OrganizationTeams/OrganizationTeamList.js +++ b/awx/ui/src/screens/Organization/OrganizationTeams/OrganizationTeamList.js @@ -1,5 +1,4 @@ import React, { useCallback, useEffect } from 'react'; -import PropTypes from 'prop-types'; import { useLocation } from 'react-router-dom'; import { useLingui } from '@lingui/react/macro'; import { OrganizationsAPI } from 'api'; @@ -98,9 +97,5 @@ function OrganizationTeamList({ id }) { ); } -OrganizationTeamList.propTypes = { - id: PropTypes.number.isRequired, -}; - export { OrganizationTeamList as _OrganizationTeamList }; export default OrganizationTeamList; diff --git a/awx/ui/src/screens/Organization/OrganizationTeams/OrganizationTeamListItem.js b/awx/ui/src/screens/Organization/OrganizationTeams/OrganizationTeamListItem.js index 8ac2358d8..8f4242711 100644 --- a/awx/ui/src/screens/Organization/OrganizationTeams/OrganizationTeamListItem.js +++ b/awx/ui/src/screens/Organization/OrganizationTeams/OrganizationTeamListItem.js @@ -1,6 +1,5 @@ import React from 'react'; import { Link } from 'react-router-dom'; -import PropTypes from 'prop-types'; import { Button } from '@patternfly/react-core'; import { Tr, Td } from '@patternfly/react-table'; import { useLingui } from '@lingui/react/macro'; @@ -37,10 +36,4 @@ function OrganizationTeamListItem({ team, detailUrl }) { ); } -OrganizationTeamListItem.propTypes = { - team: PropTypes.shape({ id: PropTypes.number, name: PropTypes.string }) - .isRequired, - detailUrl: PropTypes.string.isRequired, -}; - export default OrganizationTeamListItem; diff --git a/awx/ui/src/screens/Organization/shared/OrganizationForm.js b/awx/ui/src/screens/Organization/shared/OrganizationForm.js index c7fb5cde4..9de1e529d 100644 --- a/awx/ui/src/screens/Organization/shared/OrganizationForm.js +++ b/awx/ui/src/screens/Organization/shared/OrganizationForm.js @@ -1,5 +1,4 @@ import React, { useCallback, useEffect, useState } from 'react'; -import PropTypes from 'prop-types'; import { Formik, useField, useFormikContext } from 'formik'; import { Trans, useLingui } from '@lingui/react/macro'; import { Form } from '@patternfly/react-core'; @@ -223,13 +222,5 @@ function OrganizationForm({ ); } -OrganizationForm.propTypes = { - defaultGalaxyCredential: PropTypes.shape(), - organization: PropTypes.shape(), - onSubmit: PropTypes.func.isRequired, - onCancel: PropTypes.func.isRequired, - submitError: PropTypes.shape(), -}; - export { OrganizationForm as _OrganizationForm }; export default OrganizationForm; diff --git a/awx/ui/src/screens/Project/ProjectDetail/ProjectDetail.js b/awx/ui/src/screens/Project/ProjectDetail/ProjectDetail.js index bff31b75d..4bbdb241d 100644 --- a/awx/ui/src/screens/Project/ProjectDetail/ProjectDetail.js +++ b/awx/ui/src/screens/Project/ProjectDetail/ProjectDetail.js @@ -12,7 +12,6 @@ import { TextListItemVariants, Tooltip, } from '@patternfly/react-core'; -import { Project } from 'types'; import { Config, useConfig } from 'contexts/Config'; import AlertModal from 'components/AlertModal'; import { CardBody, CardActionsRow } from 'components/Card'; @@ -366,8 +365,4 @@ function ProjectDetail({ project }) { ); } -ProjectDetail.propTypes = { - project: Project.isRequired, -}; - export default ProjectDetail; diff --git a/awx/ui/src/screens/Project/ProjectList/ProjectListItem.js b/awx/ui/src/screens/Project/ProjectList/ProjectListItem.js index bebdc6d11..9fb59998d 100644 --- a/awx/ui/src/screens/Project/ProjectList/ProjectListItem.js +++ b/awx/ui/src/screens/Project/ProjectList/ProjectListItem.js @@ -1,5 +1,4 @@ import React, { useState, useCallback } from 'react'; -import { string, bool, func } from 'prop-types'; import { Button, ClipboardCopy, Tooltip } from '@patternfly/react-core'; import { Tr, Td, ExpandableRowContent } from '@patternfly/react-table'; import { useLingui } from '@lingui/react/macro'; @@ -18,7 +17,6 @@ import StatusLabel from 'components/StatusLabel'; import { toTitleCase } from 'util/strings'; import { isJobRunning } from 'util/jobs'; import CopyButton from 'components/CopyButton'; -import { Project } from 'types'; import JobCancelButton from 'components/JobCancelButton'; import ProjectSyncButton from '../shared/ProjectSyncButton'; @@ -40,12 +38,6 @@ function ProjectListItem({ }) { const { t } = useLingui(); const [isDisabled, setIsDisabled] = useState(false); - ProjectListItem.propTypes = { - project: Project.isRequired, - detailUrl: string.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, - }; const copyProject = useCallback(async () => { const response = await ProjectsAPI.copy(project.id, { diff --git a/awx/ui/src/screens/Project/shared/ProjectForm.js b/awx/ui/src/screens/Project/shared/ProjectForm.js index a748301ba..dc81adc36 100644 --- a/awx/ui/src/screens/Project/shared/ProjectForm.js +++ b/awx/ui/src/screens/Project/shared/ProjectForm.js @@ -3,7 +3,6 @@ // /* eslint no-nested-ternary: 0 */ import React, { useCallback, useState, useEffect } from 'react'; -import PropTypes from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Formik, useField, useFormikContext } from 'formik'; import { Form, FormGroup, Title } from '@patternfly/react-core'; @@ -476,11 +475,4 @@ function ProjectForm({ project = {}, submitError = null, ...props }) { ); } -ProjectForm.propTypes = { - handleCancel: PropTypes.func.isRequired, - handleSubmit: PropTypes.func.isRequired, - project: PropTypes.shape({}), - submitError: PropTypes.shape({}), -}; - export default ProjectForm; diff --git a/awx/ui/src/screens/Project/shared/ProjectSyncButton.js b/awx/ui/src/screens/Project/shared/ProjectSyncButton.js index 4e44b1bf4..5b7e6508b 100644 --- a/awx/ui/src/screens/Project/shared/ProjectSyncButton.js +++ b/awx/ui/src/screens/Project/shared/ProjectSyncButton.js @@ -3,7 +3,6 @@ import { useLocation } from 'react-router-dom-v5-compat'; import { Button, Tooltip } from '@patternfly/react-core'; import { SyncIcon } from '@patternfly/react-icons'; -import { number } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import useRequest, { useDismissableError } from 'hooks/useRequest'; @@ -72,8 +71,4 @@ function ProjectSyncButton({ projectId, lastJobStatus = null }) { ); } -ProjectSyncButton.propTypes = { - projectId: number.isRequired, -}; - export default ProjectSyncButton; diff --git a/awx/ui/src/screens/Setting/shared/RevertButton.js b/awx/ui/src/screens/Setting/shared/RevertButton.js index fc905a3e2..692580c25 100644 --- a/awx/ui/src/screens/Setting/shared/RevertButton.js +++ b/awx/ui/src/screens/Setting/shared/RevertButton.js @@ -1,5 +1,4 @@ import React from 'react'; -import PropTypes from 'prop-types'; import { useField } from 'formik'; import { Button, Tooltip } from '@patternfly/react-core'; @@ -67,8 +66,4 @@ function RevertButton({ ); } -RevertButton.propTypes = { - id: PropTypes.string.isRequired, -}; - export default RevertButton; diff --git a/awx/ui/src/screens/Setting/shared/RevertFormActionGroup.js b/awx/ui/src/screens/Setting/shared/RevertFormActionGroup.js index 8ecfa48c2..446618d13 100644 --- a/awx/ui/src/screens/Setting/shared/RevertFormActionGroup.js +++ b/awx/ui/src/screens/Setting/shared/RevertFormActionGroup.js @@ -1,5 +1,4 @@ import React from 'react'; -import PropTypes from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { ActionGroup, Button } from '@patternfly/react-core'; import { FormFullWidthLayout } from 'components/FormLayout'; @@ -42,10 +41,4 @@ const RevertFormActionGroup = ({ children, onCancel, onRevert, onSubmit }) => { ); }; -RevertFormActionGroup.propTypes = { - onCancel: PropTypes.func.isRequired, - onRevert: PropTypes.func.isRequired, - onSubmit: PropTypes.func.isRequired, -}; - export default RevertFormActionGroup; diff --git a/awx/ui/src/screens/Setting/shared/SharedFields.js b/awx/ui/src/screens/Setting/shared/SharedFields.js index 7399d769c..35dc3e6bd 100644 --- a/awx/ui/src/screens/Setting/shared/SharedFields.js +++ b/awx/ui/src/screens/Setting/shared/SharedFields.js @@ -1,5 +1,4 @@ import React, { useState } from 'react'; -import { shape, string } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { useField } from 'formik'; import { @@ -164,11 +163,6 @@ const BooleanField = ({ ) : null; }; -BooleanField.propTypes = { - name: string.isRequired, - config: shape({}).isRequired, -}; - const ChoiceField = ({ name, config, isRequired = false }) => { const { t } = useLingui(); const validate = isRequired ? required(null) : null; @@ -200,11 +194,6 @@ const ChoiceField = ({ name, config, isRequired = false }) => { ) : null; }; -ChoiceField.propTypes = { - name: string.isRequired, - config: shape({}).isRequired, -}; - const EncryptedField = ({ name, config, isRequired = false }) => { const { t } = useLingui(); const validate = isRequired ? required(null) : null; @@ -234,11 +223,6 @@ const EncryptedField = ({ name, config, isRequired = false }) => { ) : null; }; -EncryptedField.propTypes = { - name: string.isRequired, - config: shape({}).isRequired, -}; - const ExecutionEnvField = ({ name, config, isRequired = false }) => { const { t } = useLingui(); const [field, meta, helpers] = useField({ name }); @@ -265,11 +249,6 @@ const ExecutionEnvField = ({ name, config, isRequired = false }) => { ) : null; }; -ExecutionEnvField.propTypes = { - name: string.isRequired, - config: shape({}).isRequired, -}; - const InputAlertField = ({ name, config }) => { const { t } = useLingui(); const [field, meta] = useField({ name }); @@ -367,11 +346,6 @@ const InputAlertField = ({ name, config }) => { ) : null; }; -InputAlertField.propTypes = { - name: string.isRequired, - config: shape({}).isRequired, -}; - const InputField = ({ name, config = null, @@ -415,11 +389,6 @@ const InputField = ({ ) : null; }; -InputField.propTypes = { - name: string.isRequired, - config: shape({}), -}; - const TextAreaField = ({ name, config, isRequired = false }) => { const { t } = useLingui(); const validate = isRequired ? required(null) : null; @@ -452,11 +421,6 @@ const TextAreaField = ({ name, config, isRequired = false }) => { ) : null; }; -TextAreaField.propTypes = { - name: string.isRequired, - config: shape({}).isRequired, -}; - const ObjectField = ({ name, config, revertValue, isRequired = false }) => { const { t } = useLingui(); const validate = isRequired ? required(null) : null; @@ -498,11 +462,6 @@ const ObjectField = ({ name, config, revertValue, isRequired = false }) => { ) : null; }; -ObjectField.propTypes = { - name: string.isRequired, - config: shape({}).isRequired, -}; - const FileUploadIconWrapper = styled.div` margin: var(--pf-global--spacer--md); `; @@ -567,11 +526,6 @@ const FileUploadField = ({ ) : null; }; -FileUploadField.propTypes = { - name: string.isRequired, - config: shape({}).isRequired, -}; - export { BooleanField, ChoiceField, diff --git a/awx/ui/src/screens/SubscriptionUsage/ChartComponents/UsageChart.js b/awx/ui/src/screens/SubscriptionUsage/ChartComponents/UsageChart.js index 0de7da738..1d8b57e78 100644 --- a/awx/ui/src/screens/SubscriptionUsage/ChartComponents/UsageChart.js +++ b/awx/ui/src/screens/SubscriptionUsage/ChartComponents/UsageChart.js @@ -1,5 +1,4 @@ import React, { useEffect, useCallback } from 'react'; -import { string, number, shape, arrayOf } from 'prop-types'; import * as d3 from 'd3'; import { PageContextConsumer } from '@patternfly/react-core'; import { useLingui } from '@lingui/react/macro'; @@ -324,12 +323,6 @@ function UsageChart({ id, data, height, pageContext }) { return
; } -UsageChart.propTypes = { - id: string.isRequired, - data: arrayOf(shape({})).isRequired, - height: number.isRequired, -}; - const withPageContext = (Component) => function contextComponent(props) { return ( diff --git a/awx/ui/src/screens/Team/TeamEdit/TeamEdit.js b/awx/ui/src/screens/Team/TeamEdit/TeamEdit.js index 80ecb61cf..eb4b869c5 100644 --- a/awx/ui/src/screens/Team/TeamEdit/TeamEdit.js +++ b/awx/ui/src/screens/Team/TeamEdit/TeamEdit.js @@ -1,5 +1,4 @@ import React, { useState } from 'react'; -import PropTypes from 'prop-types'; import { useNavigate } from 'react-router-dom-v5-compat'; import { CardBody } from 'components/Card'; @@ -46,8 +45,4 @@ function TeamEdit({ team }) { ); } -TeamEdit.propTypes = { - team: PropTypes.shape().isRequired, -}; - export default TeamEdit; diff --git a/awx/ui/src/screens/Team/TeamList/TeamListItem.js b/awx/ui/src/screens/Team/TeamList/TeamListItem.js index d3aebdada..7c13c76d7 100644 --- a/awx/ui/src/screens/Team/TeamList/TeamListItem.js +++ b/awx/ui/src/screens/Team/TeamList/TeamListItem.js @@ -1,5 +1,4 @@ import React from 'react'; -import { string, bool, func } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Button } from '@patternfly/react-core'; @@ -7,16 +6,9 @@ import { Tr, Td } from '@patternfly/react-table'; import { Link } from 'react-router-dom'; import { PencilAltIcon } from '@patternfly/react-icons'; import { ActionsTd, ActionItem, TdBreakWord } from 'components/PaginatedTable'; -import { Team } from 'types'; function TeamListItem({ team, isSelected, onSelect, detailUrl, rowIndex }) { const { t } = useLingui(); - TeamListItem.propTypes = { - team: Team.isRequired, - detailUrl: string.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, - }; const labelId = `check-action-${team.id}`; diff --git a/awx/ui/src/screens/Team/shared/TeamForm.js b/awx/ui/src/screens/Team/shared/TeamForm.js index 16111ff7e..47bc84594 100644 --- a/awx/ui/src/screens/Team/shared/TeamForm.js +++ b/awx/ui/src/screens/Team/shared/TeamForm.js @@ -1,5 +1,4 @@ import React, { useCallback } from 'react'; -import PropTypes from 'prop-types'; import { Formik, useField, useFormikContext } from 'formik'; import { Form } from '@patternfly/react-core'; @@ -85,11 +84,4 @@ function TeamForm({ ); } -TeamForm.propTypes = { - handleCancel: PropTypes.func.isRequired, - handleSubmit: PropTypes.func.isRequired, - team: PropTypes.shape({}), - submitError: PropTypes.shape(), -}; - export default TeamForm; diff --git a/awx/ui/src/screens/Template/JobTemplateEdit/JobTemplateEdit.js b/awx/ui/src/screens/Template/JobTemplateEdit/JobTemplateEdit.js index bbabd1f0b..5ab3c46b9 100644 --- a/awx/ui/src/screens/Template/JobTemplateEdit/JobTemplateEdit.js +++ b/awx/ui/src/screens/Template/JobTemplateEdit/JobTemplateEdit.js @@ -2,7 +2,6 @@ import React, { useState, useCallback, useEffect } from 'react'; import { useNavigate, Navigate } from 'react-router-dom-v5-compat'; -import { JobTemplate } from 'types'; import { JobTemplatesAPI, ProjectsAPI } from 'api'; import { getAddedAndRemoved } from 'util/lists'; import useRequest from 'hooks/useRequest'; @@ -137,7 +136,4 @@ function JobTemplateEdit({ template, reloadTemplate }) { ); } -JobTemplateEdit.propTypes = { - template: JobTemplate.isRequired, -}; export default JobTemplateEdit; diff --git a/awx/ui/src/screens/Template/Survey/SurveyQuestionForm.js b/awx/ui/src/screens/Template/Survey/SurveyQuestionForm.js index c4fa43054..a2a0df055 100644 --- a/awx/ui/src/screens/Template/Survey/SurveyQuestionForm.js +++ b/awx/ui/src/screens/Template/Survey/SurveyQuestionForm.js @@ -1,5 +1,4 @@ import React from 'react'; -import { func, string, bool, number, shape } from 'prop-types'; import { Formik, useField } from 'formik'; import { useLingui } from '@lingui/react/macro'; import { Form, FormGroup } from '@patternfly/react-core'; @@ -287,18 +286,4 @@ function SurveyQuestionForm({ ); } -SurveyQuestionForm.propTypes = { - question: shape({ - question_name: string.isRequired, - question_description: string.isRequired, - required: bool, - type: string.isRequired, - min: number, - max: number, - }), - handleSubmit: func.isRequired, - handleCancel: func.isRequired, - submitError: shape({}), -}; - export default SurveyQuestionForm; diff --git a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/LinkModals/LinkModal.js b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/LinkModals/LinkModal.js index 25f6bbcd2..84b16d2c2 100644 --- a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/LinkModals/LinkModal.js +++ b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/LinkModals/LinkModal.js @@ -3,7 +3,6 @@ import { Button, FormGroup, Modal } from '@patternfly/react-core'; import { useLingui } from '@lingui/react/macro'; -import { func } from 'prop-types'; import { WorkflowDispatchContext, WorkflowStateContext, @@ -79,8 +78,4 @@ function LinkModal({ header, onConfirm }) { ); } -LinkModal.propTypes = { - onConfirm: func.isRequired, -}; - export default LinkModal; diff --git a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeModal.js b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeModal.js index bb16673d2..9a8774867 100644 --- a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeModal.js +++ b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeModal.js @@ -4,7 +4,6 @@ import { useLocation, useNavigate } from 'react-router-dom-v5-compat'; import { useLingui } from '@lingui/react/macro'; import { Formik, useFormikContext } from 'formik'; import yaml from 'js-yaml'; -import { bool, node, func } from 'prop-types'; import { Button, WizardContextConsumer, @@ -409,10 +408,4 @@ const NodeModal = ({ onSave, askLinkType, title }) => { ); }; -NodeModal.propTypes = { - askLinkType: bool.isRequired, - onSave: func.isRequired, - title: node.isRequired, -}; - export default NodeModal; diff --git a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeNextButton.js b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeNextButton.js index dcf8a8d8d..5e3dbfb11 100644 --- a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeNextButton.js +++ b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeNextButton.js @@ -1,5 +1,4 @@ import React, { useEffect } from 'react'; -import { func, oneOfType, number, shape, string } from 'prop-types'; import { Button } from '@patternfly/react-core'; function NodeNextButton({ @@ -31,12 +30,4 @@ function NodeNextButton({ ); } -NodeNextButton.propTypes = { - activeStep: shape().isRequired, - buttonText: string.isRequired, - onClick: func.isRequired, - onNext: func.isRequired, - triggerNext: oneOfType([string, number]).isRequired, -}; - export default NodeNextButton; diff --git a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/InventorySourcesList.js b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/InventorySourcesList.js index d32de1dcb..164e08a14 100644 --- a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/InventorySourcesList.js +++ b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/InventorySourcesList.js @@ -1,7 +1,6 @@ import React, { useEffect, useCallback } from 'react'; import { useLocation } from 'react-router-dom'; -import { func, shape } from 'prop-types'; import { InventorySourcesAPI } from 'api'; import { getQSConfig, parseQueryString } from 'util/qs'; import useRequest from 'hooks/useRequest'; @@ -113,9 +112,4 @@ function InventorySourcesList({ nodeResource = null, onUpdateNodeResource }) { ); } -InventorySourcesList.propTypes = { - nodeResource: shape(), - onUpdateNodeResource: func.isRequired, -}; - export default InventorySourcesList; diff --git a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/JobTemplatesList.js b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/JobTemplatesList.js index 99f4dba9b..efb7943d1 100644 --- a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/JobTemplatesList.js +++ b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/JobTemplatesList.js @@ -4,7 +4,6 @@ import { useLocation } from 'react-router-dom'; import { useLingui } from '@lingui/react/macro'; import { Popover } from '@patternfly/react-core'; import { OutlinedQuestionCircleIcon } from '@patternfly/react-icons'; -import { func, shape } from 'prop-types'; import { JobTemplatesAPI } from 'api'; import { getQSConfig, parseQueryString } from 'util/qs'; import useRequest from 'hooks/useRequest'; @@ -174,9 +173,4 @@ function JobTemplatesList({ nodeResource = null, onUpdateNodeResource }) { ); } -JobTemplatesList.propTypes = { - nodeResource: shape(), - onUpdateNodeResource: func.isRequired, -}; - export default JobTemplatesList; diff --git a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/ProjectsList.js b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/ProjectsList.js index a6fb7b844..0e5ccff0d 100644 --- a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/ProjectsList.js +++ b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/ProjectsList.js @@ -2,7 +2,6 @@ import React, { useEffect, useCallback } from 'react'; import { useLocation } from 'react-router-dom'; import { useLingui } from '@lingui/react/macro'; -import { func, shape } from 'prop-types'; import { ProjectsAPI } from 'api'; import { getQSConfig, parseQueryString } from 'util/qs'; import useRequest from 'hooks/useRequest'; @@ -120,9 +119,4 @@ function ProjectsList({ nodeResource = null, onUpdateNodeResource }) { ); } -ProjectsList.propTypes = { - nodeResource: shape(), - onUpdateNodeResource: func.isRequired, -}; - export default ProjectsList; diff --git a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/SystemJobTemplatesList.js b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/SystemJobTemplatesList.js index f6b4bf444..01f88ac6f 100644 --- a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/SystemJobTemplatesList.js +++ b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/SystemJobTemplatesList.js @@ -1,7 +1,6 @@ import React, { useEffect, useCallback } from 'react'; import { useLocation } from 'react-router-dom'; import { useLingui } from '@lingui/react/macro'; -import { func, shape } from 'prop-types'; import { SystemJobTemplatesAPI } from 'api'; import { getQSConfig, parseQueryString } from 'util/qs'; import useRequest from 'hooks/useRequest'; @@ -103,9 +102,4 @@ function SystemJobTemplatesList({ nodeResource = null, onUpdateNodeResource }) { ); } -SystemJobTemplatesList.propTypes = { - nodeResource: shape(), - onUpdateNodeResource: func.isRequired, -}; - export default SystemJobTemplatesList; diff --git a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.js b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.js index 60cd461da..541f5952c 100644 --- a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.js +++ b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/NodeModals/NodeTypeStep/WorkflowJobTemplatesList.js @@ -1,7 +1,6 @@ import React, { useEffect, useCallback } from 'react'; import { useLocation } from 'react-router-dom'; import { useLingui } from '@lingui/react/macro'; -import { func, shape } from 'prop-types'; import { WorkflowJobTemplatesAPI } from 'api'; import { getQSConfig, parseQueryString } from 'util/qs'; import useRequest from 'hooks/useRequest'; @@ -119,9 +118,4 @@ function WorkflowJobTemplatesList({ nodeResource = null, onUpdateNodeResource }) ); } -WorkflowJobTemplatesList.propTypes = { - nodeResource: shape(), - onUpdateNodeResource: func.isRequired, -}; - export default WorkflowJobTemplatesList; diff --git a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/UnsavedChangesModal.js b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/UnsavedChangesModal.js index 7b2712c28..96816c8ce 100644 --- a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/UnsavedChangesModal.js +++ b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Modals/UnsavedChangesModal.js @@ -2,7 +2,6 @@ import React, { useContext } from 'react'; import { Button, Modal } from '@patternfly/react-core'; import { Trans, useLingui } from '@lingui/react/macro'; -import { func } from 'prop-types'; import { WorkflowDispatchContext } from 'contexts/Workflow'; function UnsavedChangesModal({ onSaveAndExit, onExit }) { @@ -48,9 +47,4 @@ function UnsavedChangesModal({ onSaveAndExit, onExit }) { ); } -UnsavedChangesModal.propTypes = { - onExit: func.isRequired, - onSaveAndExit: func.isRequired, -}; - export default UnsavedChangesModal; diff --git a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Visualizer.js b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Visualizer.js index d57ef5c0a..c5a196f2c 100644 --- a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Visualizer.js +++ b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/Visualizer.js @@ -1,7 +1,6 @@ import React, { useCallback, useEffect, useReducer } from 'react'; import { useNavigate } from 'react-router-dom-v5-compat'; import styled from 'styled-components'; -import { shape } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { @@ -715,8 +714,4 @@ function Visualizer({ template }) { ); } -Visualizer.propTypes = { - template: shape().isRequired, -}; - export default Visualizer; diff --git a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerGraph.js b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerGraph.js index ba29554f3..0faf28fd9 100644 --- a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerGraph.js +++ b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerGraph.js @@ -1,7 +1,6 @@ import React, { useContext, useEffect, useRef, useState } from 'react'; import { useLingui } from '@lingui/react/macro'; import styled from 'styled-components'; -import { bool } from 'prop-types'; import * as d3 from 'd3'; import { WorkflowDispatchContext, @@ -317,7 +316,4 @@ function VisualizerGraph({ readOnly }) { ); } -VisualizerGraph.propTypes = { - readOnly: bool.isRequired, -}; export default VisualizerGraph; diff --git a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerLink.js b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerLink.js index 72722888d..fa3c0a5a0 100644 --- a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerLink.js +++ b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerLink.js @@ -2,7 +2,6 @@ import React, { useContext, useEffect, useRef, useState } from 'react'; import styled from 'styled-components'; import { useLingui } from '@lingui/react/macro'; -import { bool, func, shape } from 'prop-types'; import { PencilAltIcon, PlusIcon, TrashAltIcon } from '@patternfly/react-icons'; import { WorkflowDispatchContext, @@ -151,11 +150,4 @@ function VisualizerLink({ link, updateLinkHelp, readOnly, updateHelpText }) { ); } -VisualizerLink.propTypes = { - link: shape().isRequired, - readOnly: bool.isRequired, - updateHelpText: func.isRequired, - updateLinkHelp: func.isRequired, -}; - export default VisualizerLink; diff --git a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerNode.js b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerNode.js index b01d6689e..34c17a7eb 100644 --- a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerNode.js +++ b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerNode.js @@ -1,7 +1,6 @@ import React, { useContext, useRef, useState } from 'react'; import styled from 'styled-components'; import { useLingui } from '@lingui/react/macro'; -import { bool, func, shape } from 'prop-types'; import { InfoIcon, LinkIcon, @@ -387,12 +386,4 @@ function VisualizerNode({ ); } -VisualizerNode.propTypes = { - node: shape().isRequired, - onMouseOver: func, - readOnly: bool.isRequired, - updateHelpText: func.isRequired, - updateNodeHelp: func.isRequired, -}; - export default VisualizerNode; diff --git a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerToolbar.js b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerToolbar.js index 2bdd0880a..d916c8304 100644 --- a/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerToolbar.js +++ b/awx/ui/src/screens/Template/WorkflowJobTemplateVisualizer/VisualizerToolbar.js @@ -1,7 +1,6 @@ import React, { useContext } from 'react'; import { useLingui } from '@lingui/react/macro'; -import { bool, func, shape } from 'prop-types'; import { Badge as PFBadge, Button, @@ -188,12 +187,4 @@ function VisualizerToolbar({ ); } -VisualizerToolbar.propTypes = { - onClose: func.isRequired, - onSave: func.isRequired, - template: shape().isRequired, - hasUnsavedChanges: bool.isRequired, - readOnly: bool.isRequired, -}; - export default VisualizerToolbar; diff --git a/awx/ui/src/screens/Template/shared/JobTemplateForm.js b/awx/ui/src/screens/Template/shared/JobTemplateForm.js index 384d8b49b..beba0ed1f 100644 --- a/awx/ui/src/screens/Template/shared/JobTemplateForm.js +++ b/awx/ui/src/screens/Template/shared/JobTemplateForm.js @@ -1,5 +1,4 @@ import React, { useState, useEffect, useCallback } from 'react'; -import PropTypes from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { withFormik, useField } from 'formik'; @@ -31,7 +30,6 @@ import { } from 'components/FormLayout'; import { VariablesField } from 'components/CodeEditor'; import { required, combine, maxLength } from 'util/validators'; -import { JobTemplate } from 'types'; import { InventoryLookup, InstanceGroupsLookup, @@ -681,13 +679,6 @@ function JobTemplateForm({ ); } -JobTemplateForm.propTypes = { - template: JobTemplate, - handleCancel: PropTypes.func.isRequired, - handleSubmit: PropTypes.func.isRequired, - submitError: PropTypes.shape({}), - isOverrideDisabledLookup: PropTypes.bool, -}; const FormikApp = withFormik({ mapPropsToValues({ resourceValues = null, template = {} }) { diff --git a/awx/ui/src/screens/Template/shared/PlaybookSelect.js b/awx/ui/src/screens/Template/shared/PlaybookSelect.js index 2bb55794d..561420ce1 100644 --- a/awx/ui/src/screens/Template/shared/PlaybookSelect.js +++ b/awx/ui/src/screens/Template/shared/PlaybookSelect.js @@ -1,5 +1,4 @@ import React, { useCallback, useEffect, useState } from 'react'; -import { func, number, string, oneOfType } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { SelectVariant, Select, SelectOption } from '@patternfly/react-core'; @@ -81,9 +80,5 @@ function PlaybookSelect({ ); } -PlaybookSelect.propTypes = { - projectId: oneOfType([number, string]), - onChange: func, -}; export { PlaybookSelect as _PlaybookSelect }; export default PlaybookSelect; diff --git a/awx/ui/src/screens/Template/shared/WorkflowJobTemplateForm.js b/awx/ui/src/screens/Template/shared/WorkflowJobTemplateForm.js index 4f7221101..a10550687 100644 --- a/awx/ui/src/screens/Template/shared/WorkflowJobTemplateForm.js +++ b/awx/ui/src/screens/Template/shared/WorkflowJobTemplateForm.js @@ -1,6 +1,5 @@ import React, { useCallback, useEffect, useState } from 'react'; import { useLingui } from '@lingui/react/macro'; -import PropTypes, { shape } from 'prop-types'; import { useField, useFormikContext, withFormik } from 'formik'; import { Form, @@ -25,7 +24,6 @@ import FormActionGroup from 'components/FormActionGroup'; import ContentError from 'components/ContentError'; import CheckboxField from 'components/FormField/CheckboxField'; import Popover from 'components/Popover'; -import { WorkFlowJobTemplate } from 'types'; import LabelSelect from 'components/LabelSelect'; import { TagMultiSelect } from 'components/MultiSelect'; import WebhookSubForm from './WebhookSubForm'; @@ -288,15 +286,6 @@ function WorkflowJobTemplateForm({ ); } -WorkflowJobTemplateForm.propTypes = { - template: WorkFlowJobTemplate, - handleSubmit: PropTypes.func.isRequired, - handleCancel: PropTypes.func.isRequired, - submitError: shape({}), - isOrgAdmin: PropTypes.bool, - isInventoryDisabled: PropTypes.bool, -}; - const FormikApp = withFormik({ mapPropsToValues({ template = {} }) { return { diff --git a/awx/ui/src/screens/TopologyView/Header.js b/awx/ui/src/screens/TopologyView/Header.js index 524667062..eb1d4cec9 100644 --- a/awx/ui/src/screens/TopologyView/Header.js +++ b/awx/ui/src/screens/TopologyView/Header.js @@ -1,5 +1,4 @@ import React from 'react'; -import PropTypes from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { @@ -125,8 +124,4 @@ const Header = ({ ); }; -Header.propTypes = { - title: PropTypes.string.isRequired, -}; - export default Header; diff --git a/awx/ui/src/screens/User/UserList/UserListItem.js b/awx/ui/src/screens/User/UserList/UserListItem.js index e7c883bfd..e70017cd8 100644 --- a/awx/ui/src/screens/User/UserList/UserListItem.js +++ b/awx/ui/src/screens/User/UserList/UserListItem.js @@ -1,5 +1,4 @@ import React from 'react'; -import { string, bool, func } from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Button, Label } from '@patternfly/react-core'; @@ -8,8 +7,6 @@ import { Link } from 'react-router-dom'; import { PencilAltIcon } from '@patternfly/react-icons'; import { ActionsTd, ActionItem, TdBreakWord } from 'components/PaginatedTable'; -import { User } from 'types'; - function UserListItem({ user, isSelected, onSelect, detailUrl, rowIndex }) { const { t } = useLingui(); const labelId = `check-action-${user.id}`; @@ -79,11 +76,4 @@ function UserListItem({ user, isSelected, onSelect, detailUrl, rowIndex }) { ); } -UserListItem.prototype = { - user: User.isRequired, - detailUrl: string.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default UserListItem; diff --git a/awx/ui/src/screens/User/UserTeams/UserTeamListItem.js b/awx/ui/src/screens/User/UserTeams/UserTeamListItem.js index 7889ba39f..e28c35c61 100644 --- a/awx/ui/src/screens/User/UserTeams/UserTeamListItem.js +++ b/awx/ui/src/screens/User/UserTeams/UserTeamListItem.js @@ -1,9 +1,7 @@ import React from 'react'; -import { bool, func } from 'prop-types'; import { Link } from 'react-router-dom'; import { useLingui } from '@lingui/react/macro'; import { Tr, Td } from '@patternfly/react-table'; -import { Team } from 'types'; function UserTeamListItem({ team, isSelected, onSelect, rowIndex }) { const { t } = useLingui(); @@ -35,10 +33,4 @@ function UserTeamListItem({ team, isSelected, onSelect, rowIndex }) { ); } -UserTeamListItem.prototype = { - team: Team.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default UserTeamListItem; diff --git a/awx/ui/src/screens/User/shared/UserForm.js b/awx/ui/src/screens/User/shared/UserForm.js index 7b8462977..c20a35c89 100644 --- a/awx/ui/src/screens/User/shared/UserForm.js +++ b/awx/ui/src/screens/User/shared/UserForm.js @@ -1,5 +1,4 @@ import React, { useCallback } from 'react'; -import PropTypes from 'prop-types'; import { useLingui } from '@lingui/react/macro'; import { Formik, useField, useFormikContext } from 'formik'; import { Form, FormGroup } from '@patternfly/react-core'; @@ -228,10 +227,4 @@ function UserForm({ user = {}, handleCancel, handleSubmit, submitError }) { ); } -UserForm.propTypes = { - handleCancel: PropTypes.func.isRequired, - handleSubmit: PropTypes.func.isRequired, - user: PropTypes.shape({}), -}; - export default UserForm; diff --git a/awx/ui/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListApproveButton.js b/awx/ui/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListApproveButton.js index d0daad94c..c30f85dab 100644 --- a/awx/ui/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListApproveButton.js +++ b/awx/ui/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListApproveButton.js @@ -1,10 +1,8 @@ import React, { useContext } from 'react'; import { useLingui } from '@lingui/react/macro'; -import PropTypes from 'prop-types'; import { Button, DropdownItem, Tooltip } from '@patternfly/react-core'; import { KebabifiedContext } from 'contexts/Kebabified'; -import { WorkflowApproval } from 'types'; function cannotApprove(item) { return !item.can_approve_or_deny; @@ -65,9 +63,4 @@ function WorkflowApprovalListApproveButton({ onApprove, selectedItems = [] }) { ); } -WorkflowApprovalListApproveButton.propTypes = { - onApprove: PropTypes.func.isRequired, - selectedItems: PropTypes.arrayOf(WorkflowApproval), -}; - export default WorkflowApprovalListApproveButton; diff --git a/awx/ui/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListDenyButton.js b/awx/ui/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListDenyButton.js index 5f7684a3d..611aee07e 100644 --- a/awx/ui/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListDenyButton.js +++ b/awx/ui/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListDenyButton.js @@ -1,9 +1,7 @@ import React, { useContext } from 'react'; import { useLingui } from '@lingui/react/macro'; -import PropTypes from 'prop-types'; import { Button, DropdownItem, Tooltip } from '@patternfly/react-core'; import { KebabifiedContext } from 'contexts/Kebabified'; -import { WorkflowApproval } from 'types'; function cannotDeny(item) { return !item.can_approve_or_deny; @@ -64,9 +62,4 @@ function WorkflowApprovalListDenyButton({ onDeny, selectedItems = [] }) { ); } -WorkflowApprovalListDenyButton.propTypes = { - onDeny: PropTypes.func.isRequired, - selectedItems: PropTypes.arrayOf(WorkflowApproval), -}; - export default WorkflowApprovalListDenyButton; diff --git a/awx/ui/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListItem.js b/awx/ui/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListItem.js index eacfa27ea..d80532a14 100644 --- a/awx/ui/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListItem.js +++ b/awx/ui/src/screens/WorkflowApproval/WorkflowApprovalList/WorkflowApprovalListItem.js @@ -1,10 +1,8 @@ import React from 'react'; import { useLingui } from '@lingui/react/macro'; import useToast, { AlertVariant } from 'hooks/useToast'; -import { string, bool, func } from 'prop-types'; import { Tr, Td } from '@patternfly/react-table'; import { Link } from 'react-router-dom'; -import { WorkflowApproval } from 'types'; import { formatDateString } from 'util/dates'; import StatusLabel from 'components/StatusLabel'; import JobCancelButton from 'components/JobCancelButton'; @@ -137,11 +135,4 @@ function WorkflowApprovalListItem({ ); } -WorkflowApprovalListItem.propTypes = { - workflowApproval: WorkflowApproval.isRequired, - detailUrl: string.isRequired, - isSelected: bool.isRequired, - onSelect: func.isRequired, -}; - export default WorkflowApprovalListItem; diff --git a/awx/ui/src/types.js b/awx/ui/src/types.js deleted file mode 100644 index 0a097e3e3..000000000 --- a/awx/ui/src/types.js +++ /dev/null @@ -1,448 +0,0 @@ -import { - shape, - exact, - arrayOf, - number, - string, - bool, - objectOf, - oneOf, - oneOfType, -} from 'prop-types'; -import { AlertVariant } from '@patternfly/react-core'; - -export const Role = shape({ - descendent_roles: arrayOf(string), - role: shape({ - id: number.isRequired, - name: string.isRequired, - description: string, - user_capabilities: shape({ - unattach: bool, - }).isRequired, - }), -}); - -export const AccessRecord = shape({ - id: number.isRequired, - username: string.isRequired, - url: string.isRequired, - email: string, - first_name: string, - last_name: string, - is_superuser: bool, - is_system_auditor: bool, - created: string, - last_login: string, - ldap_dn: string, - related: shape({}), - summary_fields: shape({ - direct_access: arrayOf(Role).isRequired, - indirect_access: arrayOf(Role).isRequired, - }).isRequired, - type: string, -}); - -export const Application = shape({ - id: number.isRequired, - name: string.isRequired, - organization: number, - summary_fields: shape({ - organization: shape({ - id: number.isRequired, - name: string.isRequired, - }), - }), -}); - -export const Organization = shape({ - id: number.isRequired, - name: string.isRequired, - description: string, - max_hosts: number, - related: shape(), - summary_fields: shape({ - object_roles: shape(), - }), - type: string, - url: string, - created: string, - modified: string, -}); - -export const QSConfig = shape({ - defaultParams: shape().isRequired, - namespace: string, - integerFields: arrayOf(string).isRequired, -}); - -export const JobTemplate = shape({ - name: string.isRequired, - description: string, - inventory: number, - job_type: oneOf(['run', 'check']), - playbook: string, - project: number, - scm_branch: string, -}); - -export const WorkFlowJobTemplate = shape({ - name: string.isRequired, - description: string, - inventory: number, -}); - -export const Inventory = shape({ - id: number.isRequired, - name: string, - description: string, - groups_with_active_failures: number, - has_active_failures: bool, - has_inventory_sources: bool, - hosts_with_active_failures: number, - inventory_sources_with_failures: number, - kind: string, - organization_id: number, - total_groups: number, - total_hosts: number, - total_inventory_sources: number, -}); - -export const InventoryScript = shape({ - description: string, - id: number.isRequired, - name: string, -}); - -export const InstanceGroup = shape({ - id: number.isRequired, - name: string.isRequired, -}); - -export const Instance = shape({ - id: number.isRequired, - hostname: string.isRequired, -}); - -export const Label = shape({ - id: number.isRequired, - name: string.isRequired, -}); - -export const Credential = shape({ - id: number.isRequired, - name: string.isRequired, - cloud: bool, - kind: string, -}); - -export const Project = shape({ - id: number.isRequired, - type: oneOf(['project']), - url: string, - related: shape(), - summary_fields: shape({ - organization: Organization, - credential: Credential, - signature_validation_credential: Credential, - last_job: shape({}), - last_update: shape({}), - created_by: shape({}), - modified_by: shape({}), - object_roles: shape({}), - user_capabilities: objectOf(bool), - }), - created: string, - name: string.isRequired, - description: string, - scm_type: oneOf(['', 'git', 'svn', 'archive', 'insights']), - scm_url: string, - scm_branch: string, - scm_refspec: string, - scm_clean: bool, - scm_delete_on_update: bool, - scm_track_submodules: bool, - credential: number, - signature_validation_credential: number, - status: oneOf([ - 'new', - 'pending', - 'waiting', - 'running', - 'successful', - 'failed', - 'error', - 'canceled', - 'never updated', - 'ok', - 'missing', - ]), - organization: number, - scm_update_on_launch: bool, - scm_update_cache_timeout: number, - allow_override: bool, -}); - -export const Job = shape({ - status: string, - started: string, - finished: string, - job_type: string, - summary_fields: shape({ - job_template: JobTemplate, - project: Project, - inventory: Inventory, - instance_group: InstanceGroup, - credentials: arrayOf(Credential), - labels: shape({ - count: number, - results: arrayOf(Label), - }), - }), - scm_revision: string, - limit: oneOfType([number, string]), - verbosity: number, - execution_mode: string, - job_slice_number: number, - job_slice_count: number, - extra_vars: string, - artifacts: shape({}), -}); - -export const Host = shape({ - id: number.isRequired, - type: oneOf(['host']), - url: string, - related: shape(), - summary_fields: shape({ - inventory: Inventory, - last_job: Job, - last_job_host_summary: shape({}), - created_by: shape({}), - modified_by: shape({}), - user_capabilities: objectOf(bool), - groups: shape({}), - recent_jobs: arrayOf(Job), - }), - created: string, - modified: string, - name: string.isRequired, - description: string, - inventory: number.isRequired, - enabled: bool, - instance_id: string, - variables: string, - last_job: number, - last_job_host_summary: number, -}); - -export const Team = shape({ - id: number.isRequired, - name: string.isRequired, - organization: number, -}); - -export const Token = shape({ - id: number.isRequired, - expires: string.isRequired, - summary_fields: shape({}), - scope: string.isRequired, -}); - -export const User = shape({ - id: number.isRequired, - type: oneOf(['user']), - url: string, - related: shape(), - summary_fields: shape({ - user_capabilities: objectOf(bool), - }), - created: string, - username: string, - first_name: string, - last_name: string, - email: string, - is_superuser: bool, - is_system_auditor: bool, - ldap_dn: string, - last_login: string, -}); - -// stripped-down User object found in summary_fields (e.g. modified_by) -export const SummaryFieldUser = shape({ - id: number.isRequired, - username: string.isRequired, - first_name: string, - last_name: string, -}); - -export const Group = shape({ - id: number.isRequired, - type: oneOf(['group']), - url: string, - related: shape({}), - summary_fields: shape({}), - created: string, - modified: string, - name: string.isRequired, - description: string, - inventory: number, - variables: string, -}); - -export const SearchColumns = arrayOf( - exact({ - name: string.isRequired, - key: string.isRequired, - isDefault: bool, - isBoolean: bool, - booleanLabels: shape({ - true: string.isRequired, - false: string.isRequired, - }), - options: arrayOf(arrayOf(string, string)), - }) -); - -export const SortColumns = arrayOf( - exact({ - name: string.isRequired, - key: string.isRequired, - }) -); - -export const Schedule = shape({ - rrule: string.isRequired, - id: number.isRequired, - type: string, - url: string, - related: shape({}), - summary_fields: shape({}), - created: string, - modified: string, - name: string.isRequired, - description: string, - extra_data: oneOfType([string, shape({})]), - inventory: number, - scm_branch: string, - job_type: string, - job_tags: string, - skip_tags: string, - limit: string, - diff_mode: bool, - verbosity: number, - unified_job_template: number, - enabled: bool, - dtstart: string, - dtend: string, - next_run: string, - timezone: string, - until: string, -}); - -export const SurveyQuestion = shape({ - question_name: string, - question_description: string, - required: bool, - type: string, - variable: string, - min: number, - max: number, - default: string, - choices: oneOfType([string, arrayOf(string)]), -}); - -export const Survey = shape({ - name: string, - description: string, - spec: arrayOf(SurveyQuestion), -}); - -export const CredentialType = shape({ - id: number.isRequired, - type: string.isRequired, - url: string.isRequired, - related: shape({}), - summary_fields: shape({}), - name: string.isRequired, - description: string, - kind: string.isRequired, - namespace: string, - inputs: shape({}).isRequired, -}); - -export const NotificationType = oneOf([ - 'email', - 'grafana', - 'irc', - 'mattermost', - 'pagerduty', - 'rocketchat', - 'slack', - 'twilio', - 'webhook', -]); - -export const NotificationTemplate = shape({ - id: number.isRequired, - name: string.isRequired, - description: string, - url: string.isRequired, - organization: number.isRequired, - notification_type: NotificationType, - summary_fields: shape({ - organization: Organization, - }), -}); - -export const WorkflowApproval = shape({ - id: number.isRequired, - name: string.isRequired, - description: string, - url: string.isRequired, - failed: bool, - started: string, - finished: string, - canceled_on: string, - elapsed: number, - job_explanation: string, - can_approve_or_deny: bool, - approval_expiration: string, - timed_out: bool, -}); - -export const ExecutionEnvironment = shape({ - id: number.isRequired, - name: string, - organization: number, - credential: number, - image: string, - url: string, - summary_fields: shape({}), - description: string, - pull: string, -}); - -export const SearchableKeys = arrayOf( - shape({ - key: string.isRequired, - type: string.isRequired, - }) -); - -export const Toast = shape({ - title: string.isRequired, - variant: oneOf(Object.values(AlertVariant)).isRequired, - id: oneOfType([string, number]).isRequired, - hasTimeout: bool, - message: string, -}); - -export const HostMetrics = shape({ - hostname: string.isRequired, - first_automation: string.isRequired, - last_automation: string.isRequired, - automated_counter: number.isRequired, - used_in_inventories: number, - deleted_counter: number, -}); diff --git a/licenses/ui/prop-types.txt b/licenses/ui/prop-types.txt deleted file mode 100644 index 188fb2b0b..000000000 --- a/licenses/ui/prop-types.txt +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2013-present, Facebook, Inc. - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE.