[ML] Fixing rare wizard detector state (#105966)

This commit is contained in:
James Gowdy 2021-07-16 17:50:54 +01:00 committed by GitHub
parent 076634cca1
commit 8f4111e204
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 9 deletions

View file

@ -5,7 +5,7 @@
* 2.0.
*/
import React, { FC, useContext, useEffect, useState } from 'react';
import React, { FC, useContext, useEffect, useState, useMemo } from 'react';
import { EuiSpacer } from '@elastic/eui';
import { JobCreatorContext } from '../../../job_creator_context';
import { RareJobCreator } from '../../../../../common/job_creator';
@ -17,14 +17,15 @@ import { RARE_DETECTOR_TYPE } from './rare_view';
import { DetectorDescription } from './detector_description';
const DTR_IDX = 0;
interface Props {
rareDetectorType: RARE_DETECTOR_TYPE;
}
export const RareDetectorsSummary: FC<Props> = ({ rareDetectorType }) => {
const { jobCreator: jc, chartLoader, resultsLoader, chartInterval } = useContext(
JobCreatorContext
);
export const RareDetectorsSummary: FC = () => {
const {
jobCreator: jc,
chartLoader,
resultsLoader,
chartInterval,
jobCreatorUpdated,
} = useContext(JobCreatorContext);
const jobCreator = jc as RareJobCreator;
const [loadingData, setLoadingData] = useState(false);
@ -32,6 +33,20 @@ export const RareDetectorsSummary: FC<Props> = ({ rareDetectorType }) => {
const [eventRateChartData, setEventRateChartData] = useState<LineChartPoint[]>([]);
const [jobIsRunning, setJobIsRunning] = useState(false);
const rareDetectorType = useMemo(() => {
if (jobCreator.rareField !== null) {
if (jobCreator.populationField === null) {
return RARE_DETECTOR_TYPE.RARE;
} else {
return jobCreator.frequentlyRare
? RARE_DETECTOR_TYPE.FREQ_RARE_POPULATION
: RARE_DETECTOR_TYPE.RARE_POPULATION;
}
} else {
return RARE_DETECTOR_TYPE.RARE;
}
}, [jobCreatorUpdated]);
function setResultsWrapper(results: Results) {
const anomalies = results.anomalies[DTR_IDX];
if (anomalies !== undefined) {
@ -48,6 +63,7 @@ export const RareDetectorsSummary: FC<Props> = ({ rareDetectorType }) => {
const resultsSubscription = resultsLoader.subscribeToResults(setResultsWrapper);
jobCreator.subscribeToProgress(watchProgress);
loadChart();
return () => {
resultsSubscription.unsubscribe();
};

View file

@ -35,7 +35,7 @@ export const RareView: FC<Props> = ({ isActive, setCanProceed }) => {
}, [rareFieldValid, settingsValid]);
return isActive === false ? (
<RareDetectorsSummary rareDetectorType={rareDetectorType} />
<RareDetectorsSummary />
) : (
<>
<RareDetectors