Skip to content

Commit

Permalink
updating manage bulk duplicate confirmation modal to include checkbox…
Browse files Browse the repository at this point in the history
… for ttl items option
  • Loading branch information
yctercero committed Apr 20, 2023
1 parent 2831573 commit 3dfab5a
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 14 deletions.
Expand Up @@ -6,7 +6,14 @@
*/

import React, { useCallback, useState } from 'react';
import { EuiRadioGroup, EuiText, EuiConfirmModal, EuiSpacer, EuiIconTip } from '@elastic/eui';
import {
EuiRadioGroup,
EuiText,
EuiConfirmModal,
EuiSpacer,
EuiIconTip,
EuiCheckbox,
} from '@elastic/eui';
import { DuplicateOptions } from '../../../../../../common/detection_engine/rule_management/constants';

import { bulkDuplicateRuleActions as i18n } from './translations';
Expand All @@ -25,6 +32,8 @@ const BulkActionDuplicateExceptionsConfirmationComponent = ({
const [selectedDuplicateOption, setSelectedDuplicateOption] = useState(
DuplicateOptions.withExceptions
);
const [isIncludeExpiredExceptionItemsChecked, setIsIncludeExpiredExceptionItemsChecked] =
useState(true);

const handleRadioChange = useCallback(
(optionId) => {
Expand All @@ -33,9 +42,20 @@ const BulkActionDuplicateExceptionsConfirmationComponent = ({
[setSelectedDuplicateOption]
);

const handleCheckboxChange = useCallback(() => {
setIsIncludeExpiredExceptionItemsChecked((isChecked) => !isChecked);
}, [setIsIncludeExpiredExceptionItemsChecked]);

const handleConfirm = useCallback(() => {
onConfirm(selectedDuplicateOption);
}, [onConfirm, selectedDuplicateOption]);
if (
selectedDuplicateOption === DuplicateOptions.withExceptions &&
!isIncludeExpiredExceptionItemsChecked
) {
onConfirm(DuplicateOptions.withExceptionsExcludeExpiredExceptions);
} else {
onConfirm(selectedDuplicateOption);
}
}, [isIncludeExpiredExceptionItemsChecked, onConfirm, selectedDuplicateOption]);

return (
<EuiConfirmModal
Expand All @@ -56,14 +76,22 @@ const BulkActionDuplicateExceptionsConfirmationComponent = ({
options={[
{
id: DuplicateOptions.withExceptions,
label: i18n.DUPLICATE_EXCEPTIONS_TEXT(rulesCount),
label: (
<>
<EuiText size="s">{i18n.DUPLICATE_EXCEPTIONS_TEXT(rulesCount)}</EuiText>
<EuiSpacer size="s" />
{selectedDuplicateOption === DuplicateOptions.withExceptions && (
<EuiCheckbox
id={'duplicateOptionsWithExpiredExceptions'}
label={i18n.DUPLICATE_EXCEPTIONS_INCLUDE_EXPIRED_EXCEPTIONS_LABEL()}
checked={isIncludeExpiredExceptionItemsChecked}
onChange={handleCheckboxChange}
/>
)}
</>
),
'data-test-subj': DuplicateOptions.withExceptions,
},
{
id: DuplicateOptions.withExceptionsExcludeExpiredExceptions,
label: i18n.DUPLICATE_EXCEPTIONS_EXCLUDE_EXPIRED_EXCEPTIONS_TEXT(rulesCount),
'data-test-subj': DuplicateOptions.withExceptionsExcludeExpiredExceptions,
},
{
id: DuplicateOptions.withoutExceptions,
label: i18n.DUPLICATE_WITHOUT_EXCEPTIONS_TEXT(rulesCount),
Expand Down
Expand Up @@ -155,16 +155,15 @@ export const bulkDuplicateRuleActions = {
DUPLICATE_EXCEPTIONS_TEXT: (rulesCount: number) => (
<FormattedMessage
id="xpack.securitySolution.detectionEngine.rules.allRules.bulkActions.duplicate.exceptionsConfirmation.with"
defaultMessage="Duplicate {rulesCount, plural, one {rule} other {rules}} and {rulesCount, plural, one {its} other {their}} exceptions - include expired rule exception items"
defaultMessage="Duplicate {rulesCount, plural, one {rule} other {rules}} and {rulesCount, plural, one {its} other {their}} exceptions"
values={{ rulesCount }}
/>
),

DUPLICATE_EXCEPTIONS_EXCLUDE_EXPIRED_EXCEPTIONS_TEXT: (rulesCount: number) => (
DUPLICATE_EXCEPTIONS_INCLUDE_EXPIRED_EXCEPTIONS_LABEL: () => (
<FormattedMessage
id="xpack.securitySolution.detectionEngine.rules.allRules.bulkActions.duplicate.excludeExpiredExceptionsConfirmation.with"
defaultMessage="Duplicate {rulesCount, plural, one {rule} other {rules}} and {rulesCount, plural, one {its} other {their}} exceptions - exclude expired rule exception items"
values={{ rulesCount }}
id="xpack.securitySolution.detectionEngine.rules.allRules.bulkActions.duplicate.includeExpiredExceptionsCheckboxLabel"
defaultMessage="Include expired rule exception items"
/>
),

Expand Down

0 comments on commit 3dfab5a

Please sign in to comment.