diff --git a/packages/forklift-console-plugin/src/modules/Plans/components/PlansAddButton.tsx b/packages/forklift-console-plugin/src/modules/Plans/components/PlansAddButton.tsx index 82b8156b1..755175859 100644 --- a/packages/forklift-console-plugin/src/modules/Plans/components/PlansAddButton.tsx +++ b/packages/forklift-console-plugin/src/modules/Plans/components/PlansAddButton.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { FC } from 'react'; import { useHistory } from 'react-router'; import { getResourceUrl } from 'src/modules/Providers/utils'; import { useCreateVmMigrationData } from 'src/modules/Providers/views/migrate'; @@ -8,12 +8,12 @@ import { useForkliftTranslation } from 'src/utils/i18n'; import { PlanModelRef } from '@kubev2v/types'; import { Button } from '@patternfly/react-core'; -interface PlansAddButtonProps { +type PlansAddButtonProps = { namespace?: string; dataTestId?: string; -} +}; -export const PlansAddButton: React.FC = ({ namespace, dataTestId }) => { +export const PlansAddButton: FC = ({ namespace, dataTestId }) => { const { t } = useForkliftTranslation(); const history = useHistory(); const { setData } = useCreateVmMigrationData(); diff --git a/packages/forklift-console-plugin/src/modules/Plans/views/create/components/PlanCreateForm.tsx b/packages/forklift-console-plugin/src/modules/Plans/views/create/components/PlanCreateForm.tsx index 374ab260a..9439e66d1 100644 --- a/packages/forklift-console-plugin/src/modules/Plans/views/create/components/PlanCreateForm.tsx +++ b/packages/forklift-console-plugin/src/modules/Plans/views/create/components/PlanCreateForm.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useCallback, useMemo } from 'react'; import { ProjectNameSelect, useProjectNameSelectOptions } from 'src/components/common'; import { SelectableCard } from 'src/modules/Providers/utils/components/Gallery/SelectableCard'; import { SelectableGallery } from 'src/modules/Providers/utils/components/Gallery/SelectableGallery'; @@ -60,11 +60,17 @@ export const PlanCreateForm: React.FC = ({ const { t } = useForkliftTranslation(); const { data, setData } = useCreateVmMigrationData(); const projectNameOptions = useProjectNameSelectOptions(projectName); - const providerCardItems = createProviderCardItems( - providers.filter((provider) => provider.metadata.namespace === projectName), + const providerCardItems = useMemo( + () => + createProviderCardItems( + providers.filter((provider) => provider.metadata.namespace === projectName), + ), + [projectName, providers], ); + const { selectedProviderUID: selectedProviderId } = filterState; + const selectedProviderCardItem = providerCardItems[selectedProviderId]; - const onProviderChange = React.useCallback((id: string) => { + const onProviderChange = useCallback((id: string) => { filterDispatch({ type: 'SELECT_PROVIDER', payload: id || '' }); }, []); @@ -121,12 +127,12 @@ export const PlanCreateForm: React.FC = ({ /> - {filterState.selectedProviderUID ? ( + {selectedProviderId ? ( onProviderChange('')} isSelected isCompact @@ -148,7 +154,7 @@ export const PlanCreateForm: React.FC = ({ ) : ( diff --git a/packages/forklift-console-plugin/src/modules/Plans/views/create/components/ProvidersEmptyState.tsx b/packages/forklift-console-plugin/src/modules/Plans/views/create/components/ProvidersEmptyState.tsx index c0a7d4dbf..97b9ab8ce 100644 --- a/packages/forklift-console-plugin/src/modules/Plans/views/create/components/ProvidersEmptyState.tsx +++ b/packages/forklift-console-plugin/src/modules/Plans/views/create/components/ProvidersEmptyState.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { FC } from 'react'; import { ProvidersAddButton } from 'src/modules/Providers'; import { ForkliftTrans, useForkliftTranslation } from 'src/utils'; @@ -12,11 +12,11 @@ import { } from '@patternfly/react-core'; import SearchIcon from '@patternfly/react-icons/dist/esm/icons/search-icon'; -interface ProviderCardEmptyStateProps { +type ProviderCardEmptyStateProps = { projectName: string; -} +}; -export const ProviderCardEmptyState: React.FC = ({ projectName }) => { +export const ProviderCardEmptyState: FC = ({ projectName }) => { const { t } = useForkliftTranslation(); return ( diff --git a/packages/forklift-console-plugin/src/modules/Providers/views/list/components/ProvidersAddButton.tsx b/packages/forklift-console-plugin/src/modules/Providers/views/list/components/ProvidersAddButton.tsx index c70817c22..ce51c0880 100644 --- a/packages/forklift-console-plugin/src/modules/Providers/views/list/components/ProvidersAddButton.tsx +++ b/packages/forklift-console-plugin/src/modules/Providers/views/list/components/ProvidersAddButton.tsx @@ -1,18 +1,18 @@ -import React from 'react'; +import React, { FC } from 'react'; import { useHistory } from 'react-router'; import { getResourceUrl } from 'src/modules/Providers/utils'; import { useForkliftTranslation } from 'src/utils/i18n'; import { ProviderModelRef } from '@kubev2v/types'; -import { Button, ButtonProps } from '@patternfly/react-core'; +import { Button, ButtonProps, ButtonVariant } from '@patternfly/react-core'; -interface ProvidersAddButtonProps { +type ProvidersAddButtonProps = { namespace?: string; dataTestId?: string; buttonProps?: ButtonProps; -} +}; -export const ProvidersAddButton: React.FC = ({ +export const ProvidersAddButton: FC = ({ namespace, dataTestId, buttonProps, @@ -31,7 +31,12 @@ export const ProvidersAddButton: React.FC = ({ }; return ( - );