From 545bdcbd1c9633317a27829c028a4eca0c33cbe2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20St=C3=BCrmer?= Date: Wed, 29 Apr 2020 20:10:24 +0200 Subject: [PATCH] Avoid duplicate or empty dataset requests --- .../log_analysis/log_analysis_setup_state.ts | 23 +++++++++---------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/x-pack/plugins/infra/public/containers/logs/log_analysis/log_analysis_setup_state.ts b/x-pack/plugins/infra/public/containers/logs/log_analysis/log_analysis_setup_state.ts index 249560c2208cb2..850679eee40500 100644 --- a/x-pack/plugins/infra/public/containers/logs/log_analysis/log_analysis_setup_state.ts +++ b/x-pack/plugins/infra/public/containers/logs/log_analysis/log_analysis_setup_state.ts @@ -96,6 +96,10 @@ export const useAnalysisSetupState = ({ { cancelPreviousOn: 'resolution', createPromise: async () => { + if (validIndexNames.length === 0) { + return { data: { datasets: [] } }; + } + return await validateSetupDatasets( validIndexNames, sourceConfiguration.timestampField, @@ -113,11 +117,6 @@ export const useAnalysisSetupState = ({ [validIndexNames, sourceConfiguration.timestampField, startTime, endTime] ); - const validateIndicesAndDatasets = useCallback(async () => { - await validateIndices(); - await validateDatasets(); - }, [validateDatasets, validateIndices]); - const setUp = useCallback(() => { return setUpModule(selectedIndexNames, startTime, endTime); }, [setUpModule, selectedIndexNames, startTime, endTime]); @@ -127,11 +126,7 @@ export const useAnalysisSetupState = ({ }, [cleanUpAndSetUpModule, selectedIndexNames, startTime, endTime]); const isValidating = useMemo( - () => - validateIndicesRequest.state === 'pending' || - validateIndicesRequest.state === 'uninitialized' || - validateDatasetsRequest.state === 'pending' || - validateDatasetsRequest.state === 'uninitialized', + () => validateIndicesRequest.state === 'pending' || validateDatasetsRequest.state === 'pending', [validateDatasetsRequest.state, validateIndicesRequest.state] ); @@ -159,13 +154,17 @@ export const useAnalysisSetupState = ({ const prevEndTime = usePrevious(endTime); const prevValidIndexNames = usePrevious(validIndexNames); + useEffect(() => { + validateIndices(); + }, [validateIndices]); + useEffect(() => { if ( startTime !== prevStartTime || endTime !== prevEndTime || !isEqual(validIndexNames, prevValidIndexNames) ) { - validateIndicesAndDatasets(); + validateDatasets(); } }, [ endTime, @@ -174,7 +173,7 @@ export const useAnalysisSetupState = ({ prevValidIndexNames, startTime, validIndexNames, - validateIndicesAndDatasets, + validateDatasets, ]); return {