[ML] Fixing rare wizard detector state (#105966)
This commit is contained in:
parent
076634cca1
commit
8f4111e204
|
@ -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();
|
||||
};
|
||||
|
|
|
@ -35,7 +35,7 @@ export const RareView: FC<Props> = ({ isActive, setCanProceed }) => {
|
|||
}, [rareFieldValid, settingsValid]);
|
||||
|
||||
return isActive === false ? (
|
||||
<RareDetectorsSummary rareDetectorType={rareDetectorType} />
|
||||
<RareDetectorsSummary />
|
||||
) : (
|
||||
<>
|
||||
<RareDetectors
|
||||
|
|
Loading…
Reference in a new issue