diff --git a/public/app.scss b/public/app.scss index 691a8e654..524fdfc11 100644 --- a/public/app.scss +++ b/public/app.scss @@ -13,7 +13,7 @@ $euiTextColor: $euiColorDarkestShade !default; @import "./components/Charts/ChartContainer.scss"; @import "./pages/Overview/components/Widgets/WidgetContainer.scss"; -@import "./pages/Detectors/components/NewFieldMappings/NewFieldMappings"; +@import "./pages/Detectors/components/ReviewFieldMappings/ReviewFieldMappings.scss"; .selected-radio-panel { background-color: tintOrShade($euiColorPrimary, 90%, 70%); @@ -120,4 +120,4 @@ $euiTextColor: $euiColorDarkestShade !default; .sa-overview-widget-empty tbody > .euiTableRow > .euiTableRowCell { border-bottom: none; -} +} diff --git a/public/pages/Detectors/components/NewFieldMappings/NewFieldMappings.scss b/public/pages/Detectors/components/ReviewFieldMappings/ReviewFieldMappings.scss similarity index 93% rename from public/pages/Detectors/components/NewFieldMappings/NewFieldMappings.scss rename to public/pages/Detectors/components/ReviewFieldMappings/ReviewFieldMappings.scss index 7c0b065ac..d73dec16d 100644 --- a/public/pages/Detectors/components/NewFieldMappings/NewFieldMappings.scss +++ b/public/pages/Detectors/components/ReviewFieldMappings/ReviewFieldMappings.scss @@ -1,4 +1,4 @@ -.newFieldMappings { +.reviewFieldMappings { .editFieldMappings { .euiPanel { &.euiPanel--hasShadow { @@ -14,4 +14,4 @@ background-color: transparent !important; } } -} \ No newline at end of file +} diff --git a/public/pages/Detectors/components/NewFieldMappings/NewFieldMappings.tsx b/public/pages/Detectors/components/ReviewFieldMappings/ReviewFieldMappings.tsx similarity index 86% rename from public/pages/Detectors/components/NewFieldMappings/NewFieldMappings.tsx rename to public/pages/Detectors/components/ReviewFieldMappings/ReviewFieldMappings.tsx index 5f4f94b4b..54a3de434 100644 --- a/public/pages/Detectors/components/NewFieldMappings/NewFieldMappings.tsx +++ b/public/pages/Detectors/components/ReviewFieldMappings/ReviewFieldMappings.tsx @@ -12,22 +12,23 @@ import { ContentPanel } from '../../../../components/ContentPanel'; import { FieldMappingService } from '../../../../services'; import { NotificationsStart } from 'opensearch-dashboards/public'; import { Detector } from '../../../../../types'; +import { RouteComponentProps } from 'react-router-dom'; -export interface UpdateFieldMappingsProps { +export interface UpdateFieldMappingsProps extends RouteComponentProps { detector: Detector; fieldMappingService?: FieldMappingService; notifications: NotificationsStart; onFieldMappingChange: (fieldMappings: FieldMapping[]) => void; - ruleQueryFields: Set; + ruleQueryFields?: Set; } export interface UpdateFieldMappingsState { fieldMappings: FieldMapping[]; loading: boolean; - ruleQueryFields: string[]; + ruleQueryFields?: Set; } -export default class NewFieldMappings extends Component< +export default class ReviewFieldMappings extends Component< UpdateFieldMappingsProps, UpdateFieldMappingsState > { @@ -37,7 +38,7 @@ export default class NewFieldMappings extends Component< super(props); this.state = { - ruleQueryFields: [], + ruleQueryFields: new Set(), fieldMappings: [], loading: false, }; @@ -61,10 +62,10 @@ export default class NewFieldMappings extends Component< render() { const { detector, fieldMappingService } = this.props; - const { fieldMappings = [], loading, ruleQueryFields = [] } = this.state; + const { fieldMappings = [], loading, ruleQueryFields = new Set([]) } = this.state; return ( diff --git a/public/pages/Detectors/components/UpdateBasicDetails/UpdateBasicDetails.tsx b/public/pages/Detectors/components/UpdateBasicDetails/UpdateBasicDetails.tsx index 42b231ca9..ee6f8721d 100644 --- a/public/pages/Detectors/components/UpdateBasicDetails/UpdateBasicDetails.tsx +++ b/public/pages/Detectors/components/UpdateBasicDetails/UpdateBasicDetails.tsx @@ -11,12 +11,12 @@ import { EuiSpacer, EuiTitle, } from '@elastic/eui'; -import { Detector, PeriodSchedule } from '../../../../../models/interfaces'; +import { PeriodSchedule } from '../../../../../models/interfaces'; import React, { useContext, useEffect, useState } from 'react'; import { RouteComponentProps } from 'react-router-dom'; import DetectorBasicDetailsForm from '../../../CreateDetector/components/DefineDetector/components/DetectorDetails'; import DetectorDataSource from '../../../CreateDetector/components/DefineDetector/components/DetectorDataSource'; -import { IndexService, ServicesContext } from '../../../../services'; +import { FieldMappingService, IndexService, ServicesContext } from '../../../../services'; import { DetectorSchedule } from '../../../CreateDetector/components/DefineDetector/components/DetectorSchedule/DetectorSchedule'; import { useCallback } from 'react'; import { DetectorHit, SearchDetectorsResponse } from '../../../../../server/models/interfaces'; @@ -25,8 +25,8 @@ import { ServerResponse } from '../../../../../server/models/types'; import { NotificationsStart } from 'opensearch-dashboards/public'; import { errorNotificationToast, successNotificationToast } from '../../../../utils/helpers'; import { CoreServicesContext } from '../../../../components/core_services'; -import NewFieldMappings from '../NewFieldMappings/NewFieldMappings'; -import { FieldMapping } from '../../../../../types'; +import ReviewFieldMappings from '../ReviewFieldMappings/ReviewFieldMappings'; +import { FieldMapping, Detector } from '../../../../../types'; export interface UpdateDetectorBasicDetailsProps extends RouteComponentProps { @@ -36,7 +36,7 @@ export interface UpdateDetectorBasicDetailsProps export const UpdateDetectorBasicDetails: React.FC = (props) => { const services = useContext(ServicesContext); const [detector, setDetector] = useState( - props.location.state?.detectorHit?._source || EMPTY_DEFAULT_DETECTOR + (props.location.state?.detectorHit?._source || EMPTY_DEFAULT_DETECTOR) as Detector ); const [fieldMappings, setFieldMappings] = useState(); const { name, inputs } = detector; @@ -57,7 +57,7 @@ export const UpdateDetectorBasicDetails: React.FC detectorHit._id === detectorId ) as DetectorHit; - setDetector(detectorHit._source); + setDetector(detectorHit._source as Detector); context?.chrome.setBreadcrumbs([ BREADCRUMBS.SECURITY_ANALYTICS, @@ -265,7 +265,7 @@ export const UpdateDetectorBasicDetails: React.FC @@ -275,7 +275,7 @@ export const UpdateDetectorBasicDetails: React.FC - = (props) = const services = useContext(ServicesContext); const [loading, setLoading] = useState(false); const [submitting, setSubmitting] = useState(false); - const [detector, setDetector] = useState(EMPTY_DEFAULT_DETECTOR); + const [detector, setDetector] = useState(EMPTY_DEFAULT_DETECTOR as Detector); const [customRuleItems, setCustomRuleItems] = useState([]); const [prePackagedRuleItems, setPrePackagedRuleItems] = useState([]); const detectorId = props.location.pathname.replace(`${ROUTES.EDIT_DETECTOR_RULES}/`, ''); @@ -60,7 +60,7 @@ export const UpdateDetectorRules: React.FC = (props) = const detectorHit = response.response.hits.hits.find( (detectorHit) => detectorHit._id === detectorId ) as DetectorHit; - const newDetector = { ...detectorHit._source, id: detectorId }; + const newDetector = { ...detectorHit._source, id: detectorId } as Detector; setDetector(newDetector); context?.chrome.setBreadcrumbs([ @@ -145,7 +145,6 @@ export const UpdateDetectorRules: React.FC = (props) = rule.id === changedItem.id ? { ...rule, active: isActive } : rule ); setPrePackagedRuleItems(updatedPrePackgedRules); - debugger; const withPrePackagedRulesUpdated = updatedPrePackgedRules .concat(customRuleItems) .filter((rule) => rule.active); @@ -300,7 +299,7 @@ export const UpdateDetectorRules: React.FC = (props) = {showMappings ? ( - void; initialIsOpen?: boolean; - ruleQueryFields?: string[]; + ruleQueryFields?: Set; } interface EditFieldMappingsState {