Skip to content

Commit

Permalink
use useForceConfirmForceInstall for add integration pages
Browse files Browse the repository at this point in the history
  • Loading branch information
hop-dev committed Jul 20, 2022
1 parent 7944899 commit b7c998d
Show file tree
Hide file tree
Showing 3 changed files with 37 additions and 26 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,16 @@ import { safeLoad } from 'js-yaml';

import { i18n } from '@kbn/i18n';

import { useConfirmForceInstall } from '../../../../../../../integrations/hooks';

import { isVerificationError } from '../../../../../../../../services';

import type { MultiPageStepLayoutProps } from '../../types';
import type { PackagePolicyFormState } from '../../../types';
import type { NewPackagePolicy } from '../../../../../../types';
import { sendCreatePackagePolicy, useStartServices } from '../../../../../../hooks';
import type { RequestError } from '../../../../../../hooks';
import { Error, ConfirmForceInstallModal } from '../../../../../../components';
import { Error } from '../../../../../../components';
import { sendGeneratePackagePolicy } from '../../hooks';
import { CreatePackagePolicyBottomBar, StandaloneModeWarningCallout } from '..';
import type { PackagePolicyValidationResults } from '../../../services';
Expand Down Expand Up @@ -85,7 +87,7 @@ export const AddIntegrationPageStep: React.FC<MultiPageStepLayoutProps> = (props
const { notifications } = useStartServices();
const [formState, setFormState] = useState<PackagePolicyFormState>('VALID');
const [validationResults, setValidationResults] = useState<PackagePolicyValidationResults>();

const confirmForceInstall = useConfirmForceInstall();
const [packagePolicy, setPackagePolicy] = useState<NewPackagePolicy>({
name: '',
description: '',
Expand Down Expand Up @@ -164,7 +166,13 @@ export const AddIntegrationPageStep: React.FC<MultiPageStepLayoutProps> = (props
const { error } = await savePackagePolicy({ newPackagePolicy: packagePolicy, force });
if (error) {
if (isVerificationError(error)) {
setFormState('CONFIRM_FAILED_VERIFICATION');
const forceInstall = await confirmForceInstall(packageInfo);

if (forceInstall) {
onSubmit({ force: true });
} else {
setFormState('VALID');
}
return;
}
notifications.toasts.addError(error, {
Expand All @@ -175,7 +183,15 @@ export const AddIntegrationPageStep: React.FC<MultiPageStepLayoutProps> = (props
onNext();
}
},
[validationResults, formState, packagePolicy, notifications.toasts, onNext]
[
validationResults,
formState,
packagePolicy,
notifications.toasts,
confirmForceInstall,
packageInfo,
onNext,
]
);

useEffect(() => {
Expand Down Expand Up @@ -212,13 +228,6 @@ export const AddIntegrationPageStep: React.FC<MultiPageStepLayoutProps> = (props

return (
<>
{formState === 'CONFIRM_FAILED_VERIFICATION' && agentPolicy && packageInfo && (
<ConfirmForceInstallModal
onConfirm={() => onSubmit({ force: true })}
onCancel={() => setFormState('VALID')}
pkg={packageInfo}
/>
)}
{isManaged ? null : <StandaloneModeWarningCallout setIsManaged={setIsManaged} />}
<EuiSpacer size={'l'} />
<StepConfigurePackagePolicy
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ import { safeLoad } from 'js-yaml';
import { useCancelAddPackagePolicy, useOnSaveNavigate } from '../hooks';
import type { CreatePackagePolicyRequest } from '../../../../../../../common';
import { dataTypes, FLEET_SYSTEM_PACKAGE, splitPkgKey } from '../../../../../../../common';
import { useConfirmForceInstall } from '../../../../../integrations/hooks';
import type {
AgentPolicy,
NewAgentPolicy,
Expand All @@ -40,7 +41,7 @@ import {
useGetPackageInfoByKey,
sendCreateAgentPolicy,
} from '../../../../hooks';
import { Loading, Error, ExtensionWrapper, ConfirmForceInstallModal } from '../../../../components';
import { Loading, Error, ExtensionWrapper } from '../../../../components';

import { agentPolicyFormValidation, ConfirmDeployAgentPolicyModal } from '../../components';
import { useUIExtension } from '../../../../hooks';
Expand Down Expand Up @@ -153,6 +154,9 @@ export const CreatePackagePolicySinglePage: CreatePackagePolicyParams = ({

const navigateAddAgentHelp = (policy?: PackagePolicy) =>
onSaveNavigate(policy, ['showAddAgentHelp']);

const confirmForceInstall = useConfirmForceInstall();

// Validation state
const [validationResults, setValidationResults] = useState<PackagePolicyValidationResults>();
const [hasAgentPolicyError, setHasAgentPolicyError] = useState<boolean>(false);
Expand Down Expand Up @@ -391,7 +395,13 @@ export const CreatePackagePolicySinglePage: CreatePackagePolicyParams = ({
});
} else {
if (isVerificationError(error)) {
setFormState('CONFIRM_FAILED_VERIFICATION');
const forceInstall = await confirmForceInstall(packagePolicy.package!);

if (forceInstall) {
onSubmit({ force: true });
} else {
setFormState('VALID');
}
return;
}
notifications.toasts.addError(error, {
Expand All @@ -404,13 +414,14 @@ export const CreatePackagePolicySinglePage: CreatePackagePolicyParams = ({
formState,
hasErrors,
agentCount,
selectedPolicyTab,
savePackagePolicy,
onSaveNavigate,
agentPolicy,
notifications.toasts,
packagePolicy,
selectedPolicyTab,
createAgentPolicy,
notifications.toasts,
agentPolicy,
onSaveNavigate,
confirmForceInstall,
]
);

Expand Down Expand Up @@ -563,14 +574,6 @@ export const CreatePackagePolicySinglePage: CreatePackagePolicyParams = ({
onCancel={() => setFormState('VALID')}
/>
)}

{formState === 'CONFIRM_FAILED_VERIFICATION' && agentPolicy && packageInfo && (
<ConfirmForceInstallModal
onConfirm={() => onSubmit({ force: true })}
onCancel={() => setFormState('VALID')}
pkg={packageInfo}
/>
)}
{formState === 'SUBMITTED_NO_AGENTS' && agentPolicy && packageInfo && (
<PostInstallAddAgentModal
packageInfo={packageInfo}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ export type PackagePolicyFormState =
| 'VALID'
| 'INVALID'
| 'CONFIRM'
| 'CONFIRM_FAILED_VERIFICATION'
| 'LOADING'
| 'SUBMITTED'
| 'SUBMITTED_NO_AGENTS';
Expand Down

0 comments on commit b7c998d

Please sign in to comment.