diff --git a/awx/ui_next/CONTRIBUTING.md b/awx/ui_next/CONTRIBUTING.md index b5dd40d386..15aaa783fe 100644 --- a/awx/ui_next/CONTRIBUTING.md +++ b/awx/ui_next/CONTRIBUTING.md @@ -156,6 +156,7 @@ Inside these folders, the internal structure is: - **/api** - All classes used to interact with API's are found here. See [AWX REST API Interaction](#awx-rest-api-interaction) for more information. - **/components** - All generic components that are meant to be used in multiple contexts throughout awx. Things like buttons, tabs go here. - **/contexts** - Components which utilize react's context api. +- **/hooks** - Custom react [hooks](https://reactjs.org/docs/hooks-custom.html) - **/locales** - [Internationalization](#internationalization) config and source files. - **/screens** - Based on the various routes of awx. - **/shared** - Components that are meant to be used specifically by a particular route, but might be sharable across pages of that route. For example, a form component which is used on both add and edit screens. diff --git a/awx/ui_next/src/components/About/About.js b/awx/ui_next/src/components/About/About.js index f996fc7457..39842f0623 100644 --- a/awx/ui_next/src/components/About/About.js +++ b/awx/ui_next/src/components/About/About.js @@ -2,7 +2,7 @@ import React from 'react'; import PropTypes from 'prop-types'; import { t } from '@lingui/macro'; import { AboutModal } from '@patternfly/react-core'; -import useBrandName from 'util/useBrandName'; +import useBrandName from 'hooks/useBrandName'; function About({ version, isOpen, onClose }) { const brandName = useBrandName(); diff --git a/awx/ui_next/src/components/About/About.test.js b/awx/ui_next/src/components/About/About.test.js index d2cb8a4637..baf7392948 100644 --- a/awx/ui_next/src/components/About/About.test.js +++ b/awx/ui_next/src/components/About/About.test.js @@ -2,7 +2,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import About from './About'; -jest.mock('../../util/useBrandName', () => ({ +jest.mock('../../hooks/useBrandName', () => ({ __esModule: true, default: () => ({ current: 'AWX', diff --git a/awx/ui_next/src/components/AdHocCommands/AdHocCommands.js b/awx/ui_next/src/components/AdHocCommands/AdHocCommands.js index 7104cfb6da..f3bddc6abf 100644 --- a/awx/ui_next/src/components/AdHocCommands/AdHocCommands.js +++ b/awx/ui_next/src/components/AdHocCommands/AdHocCommands.js @@ -5,7 +5,7 @@ import { t } from '@lingui/macro'; import PropTypes from 'prop-types'; import { Button, DropdownItem } from '@patternfly/react-core'; -import useRequest, { useDismissableError } from 'util/useRequest'; +import useRequest, { useDismissableError } from 'hooks/useRequest'; import { InventoriesAPI, CredentialTypesAPI } from 'api'; import { KebabifiedContext } from 'contexts/Kebabified'; diff --git a/awx/ui_next/src/components/AdHocCommands/AdHocCredentialStep.js b/awx/ui_next/src/components/AdHocCommands/AdHocCredentialStep.js index 7389e6a93d..94a8038b54 100644 --- a/awx/ui_next/src/components/AdHocCommands/AdHocCredentialStep.js +++ b/awx/ui_next/src/components/AdHocCommands/AdHocCredentialStep.js @@ -7,7 +7,7 @@ import { useField } from 'formik'; import { Form, FormGroup } from '@patternfly/react-core'; import { CredentialsAPI } from 'api'; import { getQSConfig, parseQueryString, mergeParams } from 'util/qs'; -import useRequest from 'util/useRequest'; +import useRequest from 'hooks/useRequest'; import { required } from 'util/validators'; import Popover from '../Popover'; diff --git a/awx/ui_next/src/components/AdHocCommands/AdHocDetailsStep.js b/awx/ui_next/src/components/AdHocCommands/AdHocDetailsStep.js index 155f6c77a2..0b92e14d84 100644 --- a/awx/ui_next/src/components/AdHocCommands/AdHocDetailsStep.js +++ b/awx/ui_next/src/components/AdHocCommands/AdHocDetailsStep.js @@ -7,7 +7,7 @@ import { useField } from 'formik'; import { Form, FormGroup, Switch, Checkbox } from '@patternfly/react-core'; import styled from 'styled-components'; import { required } from 'util/validators'; -import useBrandName from 'util/useBrandName'; +import useBrandName from 'hooks/useBrandName'; import AnsibleSelect from '../AnsibleSelect'; import FormField from '../FormField'; import { VariablesField } from '../CodeEditor'; diff --git a/awx/ui_next/src/components/AdHocCommands/AdHocExecutionEnvironmentStep.js b/awx/ui_next/src/components/AdHocCommands/AdHocExecutionEnvironmentStep.js index d2d4e54029..6e75c618c4 100644 --- a/awx/ui_next/src/components/AdHocCommands/AdHocExecutionEnvironmentStep.js +++ b/awx/ui_next/src/components/AdHocCommands/AdHocExecutionEnvironmentStep.js @@ -6,7 +6,7 @@ import { Form, FormGroup } from '@patternfly/react-core'; import { ExecutionEnvironmentsAPI } from 'api'; import { parseQueryString, getQSConfig, mergeParams } from 'util/qs'; -import useRequest from 'util/useRequest'; +import useRequest from 'hooks/useRequest'; import Popover from '../Popover'; import ContentError from '../ContentError'; import ContentLoading from '../ContentLoading'; diff --git a/awx/ui_next/src/components/AddRole/SelectResourceStep.js b/awx/ui_next/src/components/AddRole/SelectResourceStep.js index dfaefeb16d..6121a7abae 100644 --- a/awx/ui_next/src/components/AddRole/SelectResourceStep.js +++ b/awx/ui_next/src/components/AddRole/SelectResourceStep.js @@ -2,7 +2,7 @@ import React, { Fragment, useCallback, useEffect } from 'react'; import PropTypes from 'prop-types'; import { withRouter, useLocation } from 'react-router-dom'; import { t } from '@lingui/macro'; -import useRequest from 'util/useRequest'; +import useRequest from 'hooks/useRequest'; import { SearchColumns, SortColumns } from 'types'; import { getQSConfig, parseQueryString } from 'util/qs'; import DataListToolbar from '../DataListToolbar'; diff --git a/awx/ui_next/src/components/AppContainer/PageHeaderToolbar.js b/awx/ui_next/src/components/AppContainer/PageHeaderToolbar.js index 1682469ef0..487ec0f0c6 100644 --- a/awx/ui_next/src/components/AppContainer/PageHeaderToolbar.js +++ b/awx/ui_next/src/components/AppContainer/PageHeaderToolbar.js @@ -21,7 +21,7 @@ import { UserIcon, } from '@patternfly/react-icons'; import { WorkflowApprovalsAPI } from 'api'; -import useRequest from 'util/useRequest'; +import useRequest from 'hooks/useRequest'; import getDocsBaseUrl from 'util/getDocsBaseUrl'; import { useConfig } from 'contexts/Config'; import useWsPendingApprovalCount from './useWsPendingApprovalCount'; diff --git a/awx/ui_next/src/components/AppContainer/useWsPendingApprovalCount.js b/awx/ui_next/src/components/AppContainer/useWsPendingApprovalCount.js index 443a311823..da0f713ef4 100644 --- a/awx/ui_next/src/components/AppContainer/useWsPendingApprovalCount.js +++ b/awx/ui_next/src/components/AppContainer/useWsPendingApprovalCount.js @@ -1,6 +1,6 @@ import { useState, useEffect } from 'react'; -import useWebsocket from 'util/useWebsocket'; -import useThrottle from 'util/useThrottle'; +import useWebsocket from 'hooks/useWebsocket'; +import useThrottle from 'hooks/useThrottle'; export default function useWsPendingApprovalCount( initialCount, diff --git a/awx/ui_next/src/components/AppContainer/useWsPendingApprovalCount.test.js b/awx/ui_next/src/components/AppContainer/useWsPendingApprovalCount.test.js index 51091a12d2..1a1d5cd1b6 100644 --- a/awx/ui_next/src/components/AppContainer/useWsPendingApprovalCount.test.js +++ b/awx/ui_next/src/components/AppContainer/useWsPendingApprovalCount.test.js @@ -23,7 +23,7 @@ describe('useWsPendingApprovalCount hook', () => { Jest mock timers don’t play well with jest-websocket-mock, so we'll stub out throttling to resolve immediately */ - jest.mock('../../util/useThrottle', () => ({ + jest.mock('../../hooks/useThrottle', () => ({ __esModule: true, default: jest.fn(val => val), })); diff --git a/awx/ui_next/src/components/AssociateModal/AssociateModal.js b/awx/ui_next/src/components/AssociateModal/AssociateModal.js index e959d6395a..57330f4f01 100644 --- a/awx/ui_next/src/components/AssociateModal/AssociateModal.js +++ b/awx/ui_next/src/components/AssociateModal/AssociateModal.js @@ -3,9 +3,9 @@ import { useHistory } from 'react-router-dom'; import { t } from '@lingui/macro'; import { Button, Modal } from '@patternfly/react-core'; -import useRequest from 'util/useRequest'; +import useRequest from 'hooks/useRequest'; import { getQSConfig, parseQueryString } from 'util/qs'; -import useSelected from 'util/useSelected'; +import useSelected from 'hooks/useSelected'; import OptionsList from '../OptionsList'; const QS_CONFIG = (order_by = 'name') => { diff --git a/awx/ui_next/src/components/CopyButton/CopyButton.js b/awx/ui_next/src/components/CopyButton/CopyButton.js index 021f1a8e81..a6caa26a7e 100644 --- a/awx/ui_next/src/components/CopyButton/CopyButton.js +++ b/awx/ui_next/src/components/CopyButton/CopyButton.js @@ -3,7 +3,7 @@ import { t } from '@lingui/macro'; import PropTypes from 'prop-types'; import { Button } from '@patternfly/react-core'; import { CopyIcon } from '@patternfly/react-icons'; -import useRequest, { useDismissableError } from 'util/useRequest'; +import useRequest, { useDismissableError } from 'hooks/useRequest'; import AlertModal from '../AlertModal'; import ErrorDetail from '../ErrorDetail'; diff --git a/awx/ui_next/src/components/HostToggle/HostToggle.js b/awx/ui_next/src/components/HostToggle/HostToggle.js index d590583fc9..1085f5659d 100644 --- a/awx/ui_next/src/components/HostToggle/HostToggle.js +++ b/awx/ui_next/src/components/HostToggle/HostToggle.js @@ -3,7 +3,7 @@ import React, { Fragment, useState, useEffect, useCallback } from 'react'; import { t } from '@lingui/macro'; import { Switch, Tooltip } from '@patternfly/react-core'; -import useRequest from 'util/useRequest'; +import useRequest from 'hooks/useRequest'; import { HostsAPI } from 'api'; import AlertModal from '../AlertModal'; import ErrorDetail from '../ErrorDetail'; diff --git a/awx/ui_next/src/components/InstanceToggle/InstanceToggle.js b/awx/ui_next/src/components/InstanceToggle/InstanceToggle.js index 476c55d694..9ff2f6ec8f 100644 --- a/awx/ui_next/src/components/InstanceToggle/InstanceToggle.js +++ b/awx/ui_next/src/components/InstanceToggle/InstanceToggle.js @@ -2,7 +2,7 @@ import React, { useState, useEffect, useCallback } from 'react'; import { t } from '@lingui/macro'; import { Switch, Tooltip } from '@patternfly/react-core'; -import useRequest from 'util/useRequest'; +import useRequest from 'hooks/useRequest'; import { InstancesAPI } from 'api'; import { useConfig } from 'contexts/Config'; import ErrorDetail from '../ErrorDetail'; diff --git a/awx/ui_next/src/components/JobCancelButton/JobCancelButton.js b/awx/ui_next/src/components/JobCancelButton/JobCancelButton.js index 7e0d470d06..beab662f81 100644 --- a/awx/ui_next/src/components/JobCancelButton/JobCancelButton.js +++ b/awx/ui_next/src/components/JobCancelButton/JobCancelButton.js @@ -3,7 +3,7 @@ import { t } from '@lingui/macro'; import { MinusCircleIcon } from '@patternfly/react-icons'; import { Button, Tooltip } from '@patternfly/react-core'; import { getJobModel } from 'util/jobs'; -import useRequest, { useDismissableError } from 'util/useRequest'; +import useRequest, { useDismissableError } from 'hooks/useRequest'; import AlertModal from '../AlertModal'; import ErrorDetail from '../ErrorDetail'; diff --git a/awx/ui_next/src/components/JobList/JobList.js b/awx/ui_next/src/components/JobList/JobList.js index c150f6eea7..c2c4c4606e 100644 --- a/awx/ui_next/src/components/JobList/JobList.js +++ b/awx/ui_next/src/components/JobList/JobList.js @@ -6,10 +6,10 @@ import { Card } from '@patternfly/react-core'; import useRequest, { useDeleteItems, useDismissableError, -} from 'util/useRequest'; +} from 'hooks/useRequest'; import { useConfig } from 'contexts/Config'; -import useSelected from 'util/useSelected'; -import useExpanded from 'util/useExpanded'; +import useSelected from 'hooks/useSelected'; +import useExpanded from 'hooks/useExpanded'; import { isJobRunning, getJobModel } from 'util/jobs'; import { getQSConfig, parseQueryString } from 'util/qs'; import { UnifiedJobsAPI } from 'api'; diff --git a/awx/ui_next/src/components/JobList/useWsJobs.js b/awx/ui_next/src/components/JobList/useWsJobs.js index e2bd5ff137..d1bd5a5ded 100644 --- a/awx/ui_next/src/components/JobList/useWsJobs.js +++ b/awx/ui_next/src/components/JobList/useWsJobs.js @@ -1,7 +1,7 @@ import { useState, useEffect } from 'react'; import { useLocation } from 'react-router-dom'; -import useWebsocket from 'util/useWebsocket'; -import useThrottle from 'util/useThrottle'; +import useWebsocket from 'hooks/useWebsocket'; +import useThrottle from 'hooks/useThrottle'; import { parseQueryString } from 'util/qs'; import sortJobs from './sortJobs'; diff --git a/awx/ui_next/src/components/JobList/useWsJobs.test.js b/awx/ui_next/src/components/JobList/useWsJobs.test.js index f88e4c822f..3cc6dc1b72 100644 --- a/awx/ui_next/src/components/JobList/useWsJobs.test.js +++ b/awx/ui_next/src/components/JobList/useWsJobs.test.js @@ -21,7 +21,7 @@ describe('useWsJobs hook', () => { Jest mock timers don’t play well with jest-websocket-mock, so we'll stub out throttling to resolve immediately */ - jest.mock('../../util/useThrottle', () => ({ + jest.mock('../../hooks/useThrottle', () => ({ __esModule: true, default: jest.fn(val => val), })); diff --git a/awx/ui_next/src/components/LaunchPrompt/LaunchPrompt.js b/awx/ui_next/src/components/LaunchPrompt/LaunchPrompt.js index 0f2fb1aedf..042917523b 100644 --- a/awx/ui_next/src/components/LaunchPrompt/LaunchPrompt.js +++ b/awx/ui_next/src/components/LaunchPrompt/LaunchPrompt.js @@ -2,7 +2,7 @@ import React, { useState } from 'react'; import { ExpandableSection, Wizard } from '@patternfly/react-core'; import { t } from '@lingui/macro'; import { Formik, useFormikContext } from 'formik'; -import { useDismissableError } from 'util/useRequest'; +import { useDismissableError } from 'hooks/useRequest'; import mergeExtraVars from 'util/prompt/mergeExtraVars'; import getSurveyValues from 'util/prompt/getSurveyValues'; import ContentLoading from '../ContentLoading'; diff --git a/awx/ui_next/src/components/LaunchPrompt/steps/CredentialsStep.js b/awx/ui_next/src/components/LaunchPrompt/steps/CredentialsStep.js index e04efda7a6..ae777a5a0e 100644 --- a/awx/ui_next/src/components/LaunchPrompt/steps/CredentialsStep.js +++ b/awx/ui_next/src/components/LaunchPrompt/steps/CredentialsStep.js @@ -8,7 +8,7 @@ import styled from 'styled-components'; import { Alert, ToolbarItem } from '@patternfly/react-core'; import { CredentialsAPI, CredentialTypesAPI } from 'api'; import { getQSConfig, parseQueryString } from 'util/qs'; -import useRequest from 'util/useRequest'; +import useRequest from 'hooks/useRequest'; import AnsibleSelect from '../../AnsibleSelect'; import OptionsList from '../../OptionsList'; import ContentLoading from '../../ContentLoading'; diff --git a/awx/ui_next/src/components/LaunchPrompt/steps/InventoryStep.js b/awx/ui_next/src/components/LaunchPrompt/steps/InventoryStep.js index d391b326c5..cf1f45dce2 100644 --- a/awx/ui_next/src/components/LaunchPrompt/steps/InventoryStep.js +++ b/awx/ui_next/src/components/LaunchPrompt/steps/InventoryStep.js @@ -7,7 +7,7 @@ import styled from 'styled-components'; import { Alert } from '@patternfly/react-core'; import { InventoriesAPI } from 'api'; import { getQSConfig, parseQueryString } from 'util/qs'; -import useRequest from 'util/useRequest'; +import useRequest from 'hooks/useRequest'; import OptionsList from '../../OptionsList'; import ContentLoading from '../../ContentLoading'; import ContentError from '../../ContentError'; diff --git a/awx/ui_next/src/components/Lookup/ApplicationLookup.js b/awx/ui_next/src/components/Lookup/ApplicationLookup.js index 6a5b98d1b6..2a78c63cbf 100644 --- a/awx/ui_next/src/components/Lookup/ApplicationLookup.js +++ b/awx/ui_next/src/components/Lookup/ApplicationLookup.js @@ -6,7 +6,7 @@ import { FormGroup } from '@patternfly/react-core'; import { ApplicationsAPI } from 'api'; import { Application } from 'types'; import { getQSConfig, parseQueryString } from 'util/qs'; -import useRequest from 'util/useRequest'; +import useRequest from 'hooks/useRequest'; import Lookup from './Lookup'; import OptionsList from '../OptionsList'; import LookupErrorMessage from './shared/LookupErrorMessage'; diff --git a/awx/ui_next/src/components/Lookup/CredentialLookup.js b/awx/ui_next/src/components/Lookup/CredentialLookup.js index 68b1c00eeb..d76c4ba800 100644 --- a/awx/ui_next/src/components/Lookup/CredentialLookup.js +++ b/awx/ui_next/src/components/Lookup/CredentialLookup.js @@ -15,8 +15,8 @@ import { FormGroup } from '@patternfly/react-core'; import { CredentialsAPI } from 'api'; import { Credential } from 'types'; import { getQSConfig, parseQueryString, mergeParams } from 'util/qs'; -import useAutoPopulateLookup from 'util/useAutoPopulateLookup'; -import useRequest from 'util/useRequest'; +import useAutoPopulateLookup from 'hooks/useAutoPopulateLookup'; +import useRequest from 'hooks/useRequest'; import Popover from '../Popover'; import Lookup from './Lookup'; import OptionsList from '../OptionsList'; diff --git a/awx/ui_next/src/components/Lookup/ExecutionEnvironmentLookup.js b/awx/ui_next/src/components/Lookup/ExecutionEnvironmentLookup.js index 0d4de7dec7..2636915750 100644 --- a/awx/ui_next/src/components/Lookup/ExecutionEnvironmentLookup.js +++ b/awx/ui_next/src/components/Lookup/ExecutionEnvironmentLookup.js @@ -6,7 +6,7 @@ import { FormGroup, Tooltip } from '@patternfly/react-core'; import { ExecutionEnvironmentsAPI, ProjectsAPI } from 'api'; import { ExecutionEnvironment } from 'types'; import { getQSConfig, parseQueryString, mergeParams } from 'util/qs'; -import useRequest from 'util/useRequest'; +import useRequest from 'hooks/useRequest'; import Popover from '../Popover'; import OptionsList from '../OptionsList'; diff --git a/awx/ui_next/src/components/Lookup/HostFilterLookup.js b/awx/ui_next/src/components/Lookup/HostFilterLookup.js index ee232aecbb..3ca74cb37b 100644 --- a/awx/ui_next/src/components/Lookup/HostFilterLookup.js +++ b/awx/ui_next/src/components/Lookup/HostFilterLookup.js @@ -16,7 +16,7 @@ import { } from '@patternfly/react-core'; import { HostsAPI } from 'api'; import { getQSConfig, mergeParams, parseQueryString } from 'util/qs'; -import useRequest, { useDismissableError } from 'util/useRequest'; +import useRequest, { useDismissableError } from 'hooks/useRequest'; import ChipGroup from '../ChipGroup'; import Popover from '../Popover'; import DataListToolbar from '../DataListToolbar'; diff --git a/awx/ui_next/src/components/Lookup/InstanceGroupsLookup.js b/awx/ui_next/src/components/Lookup/InstanceGroupsLookup.js index 96f9e857b0..9af24e872c 100644 --- a/awx/ui_next/src/components/Lookup/InstanceGroupsLookup.js +++ b/awx/ui_next/src/components/Lookup/InstanceGroupsLookup.js @@ -7,7 +7,7 @@ import { FormGroup } from '@patternfly/react-core'; import { InstanceGroupsAPI } from 'api'; import { InstanceGroup } from 'types'; import { getQSConfig, parseQueryString } from 'util/qs'; -import useRequest from 'util/useRequest'; +import useRequest from 'hooks/useRequest'; import Popover from '../Popover'; import OptionsList from '../OptionsList'; import Lookup from './Lookup'; diff --git a/awx/ui_next/src/components/Lookup/InventoryLookup.js b/awx/ui_next/src/components/Lookup/InventoryLookup.js index d5947af4d0..30fb3df9ac 100644 --- a/awx/ui_next/src/components/Lookup/InventoryLookup.js +++ b/awx/ui_next/src/components/Lookup/InventoryLookup.js @@ -4,7 +4,7 @@ import { withRouter } from 'react-router-dom'; import { t } from '@lingui/macro'; import { InventoriesAPI } from 'api'; import { Inventory } from 'types'; -import useRequest from 'util/useRequest'; +import useRequest from 'hooks/useRequest'; import { getQSConfig, parseQueryString, mergeParams } from 'util/qs'; import Lookup from './Lookup'; import OptionsList from '../OptionsList'; diff --git a/awx/ui_next/src/components/Lookup/Lookup.js b/awx/ui_next/src/components/Lookup/Lookup.js index d8865373b9..b0cfee323b 100644 --- a/awx/ui_next/src/components/Lookup/Lookup.js +++ b/awx/ui_next/src/components/Lookup/Lookup.js @@ -22,7 +22,7 @@ import { } from '@patternfly/react-core'; import { t } from '@lingui/macro'; import styled from 'styled-components'; -import useDebounce from 'util/useDebounce'; +import useDebounce from 'hooks/useDebounce'; import { QSConfig } from 'types'; import ChipGroup from '../ChipGroup'; import reducer, { initReducer } from './shared/reducer'; diff --git a/awx/ui_next/src/components/Lookup/MultiCredentialsLookup.js b/awx/ui_next/src/components/Lookup/MultiCredentialsLookup.js index dbad506f98..2a436e010b 100644 --- a/awx/ui_next/src/components/Lookup/MultiCredentialsLookup.js +++ b/awx/ui_next/src/components/Lookup/MultiCredentialsLookup.js @@ -5,9 +5,9 @@ import PropTypes from 'prop-types'; import { t } from '@lingui/macro'; import { ToolbarItem, Alert } from '@patternfly/react-core'; import { CredentialsAPI, CredentialTypesAPI } from 'api'; -import useRequest from 'util/useRequest'; +import useRequest from 'hooks/useRequest'; import { getQSConfig, parseQueryString } from 'util/qs'; -import useIsMounted from 'util/useIsMounted'; +import useIsMounted from 'hooks/useIsMounted'; import AnsibleSelect from '../AnsibleSelect'; import CredentialChip from '../CredentialChip'; import OptionsList from '../OptionsList'; diff --git a/awx/ui_next/src/components/Lookup/OrganizationLookup.js b/awx/ui_next/src/components/Lookup/OrganizationLookup.js index 347907d629..78650465e1 100644 --- a/awx/ui_next/src/components/Lookup/OrganizationLookup.js +++ b/awx/ui_next/src/components/Lookup/OrganizationLookup.js @@ -6,8 +6,8 @@ import { FormGroup } from '@patternfly/react-core'; import { OrganizationsAPI } from 'api'; import { Organization } from 'types'; import { getQSConfig, parseQueryString } from 'util/qs'; -import useRequest from 'util/useRequest'; -import useAutoPopulateLookup from 'util/useAutoPopulateLookup'; +import useRequest from 'hooks/useRequest'; +import useAutoPopulateLookup from 'hooks/useAutoPopulateLookup'; import OptionsList from '../OptionsList'; import Lookup from './Lookup'; import LookupErrorMessage from './shared/LookupErrorMessage'; diff --git a/awx/ui_next/src/components/Lookup/ProjectLookup.js b/awx/ui_next/src/components/Lookup/ProjectLookup.js index 7e96fcc768..631d46494c 100644 --- a/awx/ui_next/src/components/Lookup/ProjectLookup.js +++ b/awx/ui_next/src/components/Lookup/ProjectLookup.js @@ -5,8 +5,8 @@ import { t } from '@lingui/macro'; import { FormGroup } from '@patternfly/react-core'; import { ProjectsAPI } from 'api'; import { Project } from 'types'; -import useAutoPopulateLookup from 'util/useAutoPopulateLookup'; -import useRequest from 'util/useRequest'; +import useAutoPopulateLookup from 'hooks/useAutoPopulateLookup'; +import useRequest from 'hooks/useRequest'; import { getQSConfig, parseQueryString } from 'util/qs'; import OptionsList from '../OptionsList'; import Popover from '../Popover'; diff --git a/awx/ui_next/src/components/MultiSelect/useSyncedSelectValue.js b/awx/ui_next/src/components/MultiSelect/useSyncedSelectValue.js index 6244e55c2a..55b6c3b4c9 100644 --- a/awx/ui_next/src/components/MultiSelect/useSyncedSelectValue.js +++ b/awx/ui_next/src/components/MultiSelect/useSyncedSelectValue.js @@ -1,5 +1,5 @@ import { useState, useEffect } from 'react'; -import useIsMounted from 'util/useIsMounted'; +import useIsMounted from 'hooks/useIsMounted'; /* Hook for using PatternFly's