Skip to content

Commit

Permalink
Revert "Avoid setting log module state if parent components are not m…
Browse files Browse the repository at this point in the history
…ounted"

This reverts commits:
- f3098a5.
- 24286bb.
  • Loading branch information
afgomez authored and Alejandro Fernández Gómez committed Oct 19, 2020
1 parent 544e1dc commit fb579e9
Show file tree
Hide file tree
Showing 15 changed files with 22 additions and 70 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

import createContainer from 'constate';
import { useMemo, useState, useEffect } from 'react';
import { ignoreCanceledPromise, useTrackedPromise } from '../../../utils/use_tracked_promise';
import { useTrackedPromise } from '../../../utils/use_tracked_promise';
import {
getMlCapabilitiesResponsePayloadRT,
GetMlCapabilitiesResponsePayload,
Expand All @@ -31,7 +31,6 @@ export const useLogAnalysisCapabilities = () => {
onResolve: (response) => {
setMlCapabilities(response);
},
onReject: ignoreCanceledPromise,
},
[]
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
*/

import { useCallback, useMemo } from 'react';
import { useMountedState } from 'react-use';
import { DatasetFilter } from '../../../../common/log_analysis';
import { useKibanaContextForPlugin } from '../../../hooks/use_kibana';
import { useTrackedPromise } from '../../../utils/use_tracked_promise';
Expand All @@ -20,7 +19,6 @@ export const useLogAnalysisModule = <JobType extends string>({
moduleDescriptor: ModuleDescriptor<JobType>;
}) => {
const { services } = useKibanaContextForPlugin();
const isMounted = useMountedState();
const { spaceId, sourceId, timestampField } = sourceConfiguration;
const [moduleStatus, dispatchModuleStatus] = useModuleStatus(moduleDescriptor.jobTypes);

Expand All @@ -32,19 +30,15 @@ export const useLogAnalysisModule = <JobType extends string>({
return await moduleDescriptor.getJobSummary(spaceId, sourceId, services.http.fetch);
},
onResolve: (jobResponse) => {
if (isMounted()) {
dispatchModuleStatus({
type: 'fetchedJobStatuses',
payload: jobResponse,
spaceId,
sourceId,
});
}
dispatchModuleStatus({
type: 'fetchedJobStatuses',
payload: jobResponse,
spaceId,
sourceId,
});
},
onReject: () => {
if (isMounted()) {
dispatchModuleStatus({ type: 'failedFetchingJobStatuses' });
}
dispatchModuleStatus({ type: 'failedFetchingJobStatuses' });
},
},
[spaceId, sourceId]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
*/

import { useCallback, useMemo, useState } from 'react';
import { useMountedState } from 'react-use';
import { getJobId } from '../../../../common/log_analysis';
import { useKibanaContextForPlugin } from '../../../hooks/use_kibana';
import { useTrackedPromise } from '../../../utils/use_tracked_promise';
Expand All @@ -21,7 +20,6 @@ export const useLogAnalysisModuleDefinition = <JobType extends string>({
moduleDescriptor: ModuleDescriptor<JobType>;
}) => {
const { services } = useKibanaContextForPlugin();
const isMounted = useMountedState();
const [moduleDefinition, setModuleDefinition] = useState<
GetMlModuleResponsePayload | undefined
>();
Expand All @@ -47,14 +45,10 @@ export const useLogAnalysisModuleDefinition = <JobType extends string>({
return await moduleDescriptor.getModuleDefinition(services.http.fetch);
},
onResolve: (response) => {
if (isMounted()) {
setModuleDefinition(response);
}
setModuleDefinition(response);
},
onReject: () => {
if (isMounted()) {
setModuleDefinition(undefined);
}
setModuleDefinition(undefined);
},
},
[moduleDescriptor.getModuleDefinition, spaceId, sourceId]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import {
ValidationUIError,
} from '../../../components/logging/log_analysis_setup/initial_configuration_step';
import { useKibanaContextForPlugin } from '../../../hooks/use_kibana';
import { ignoreCanceledPromise, useTrackedPromise } from '../../../utils/use_tracked_promise';
import { useTrackedPromise } from '../../../utils/use_tracked_promise';
import { ModuleDescriptor, ModuleSourceConfiguration } from './log_analysis_module_types';

type SetupHandler = (
Expand Down Expand Up @@ -193,7 +193,6 @@ export const useAnalysisSetupState = <JobType extends string>({
onResolve: ({ data: { datasets } }) => {
updateIndicesWithAvailableDatasets(datasets);
},
onReject: ignoreCanceledPromise,
},
[validIndexNames, sourceConfiguration.timestampField, startTime, endTime]
);
Expand Down
3 changes: 1 addition & 2 deletions x-pack/plugins/infra/public/containers/logs/log_flyout.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import React, { useContext, useEffect, useMemo, useState } from 'react';
import { LogEntriesItem } from '../../../common/http_api';
import { useKibanaContextForPlugin } from '../../hooks/use_kibana';
import { UrlStateContainer } from '../../utils/url_state';
import { ignoreCanceledPromise, useTrackedPromise } from '../../utils/use_tracked_promise';
import { useTrackedPromise } from '../../utils/use_tracked_promise';
import { fetchLogEntriesItem } from './log_entries/api/fetch_log_entries_item';
import { useLogSourceContext } from './log_source';

Expand Down Expand Up @@ -49,7 +49,6 @@ export const useLogFlyout = () => {
setFlyoutItem(data || null);
}
},
onReject: ignoreCanceledPromise,
},
[sourceId, flyoutId]
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import { useEffect, useMemo, useState } from 'react';

import { TimeKey } from '../../../../common/time';
import { ignoreCanceledPromise, useTrackedPromise } from '../../../utils/use_tracked_promise';
import { useTrackedPromise } from '../../../utils/use_tracked_promise';
import { fetchLogEntriesHighlights } from './api/fetch_log_entries_highlights';
import { LogEntry, LogEntriesHighlightsResponse } from '../../../../common/http_api';
import { useKibanaContextForPlugin } from '../../../hooks/use_kibana';
Expand Down Expand Up @@ -50,7 +50,6 @@ export const useLogEntryHighlights = (
onResolve: (response) => {
setLogEntryHighlights(response.data);
},
onReject: ignoreCanceledPromise,
},
[sourceId, startTimestamp, endTimestamp, centerPoint, size, filterQuery, highlightTerms]
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import { useEffect, useMemo, useState } from 'react';
import { debounce } from 'lodash';

import { ignoreCanceledPromise, useTrackedPromise } from '../../../utils/use_tracked_promise';
import { useTrackedPromise } from '../../../utils/use_tracked_promise';
import { fetchLogSummaryHighlights } from './api/fetch_log_summary_highlights';
import { LogEntriesSummaryHighlightsResponse } from '../../../../common/http_api';
import { useBucketSize } from '../log_summary/bucket_size';
Expand Down Expand Up @@ -51,7 +51,6 @@ export const useLogSummaryHighlights = (
onResolve: (response) => {
setLogSummaryHighlights(response.data);
},
onReject: ignoreCanceledPromise,
},
[sourceId, startTimestamp, endTimestamp, bucketSize, filterQuery, highlightTerms]
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import {
LogSourceConfigurationPropertiesPatch,
LogSourceStatus,
} from '../../../../common/http_api/log_sources';
import { ignoreCanceledPromise, useTrackedPromise } from '../../../utils/use_tracked_promise';
import { useTrackedPromise } from '../../../utils/use_tracked_promise';
import { callFetchLogSourceConfigurationAPI } from './api/fetch_log_source_configuration';
import { callFetchLogSourceStatusAPI } from './api/fetch_log_source_status';
import { callPatchLogSourceConfigurationAPI } from './api/patch_log_source_configuration';
Expand Down Expand Up @@ -47,7 +47,6 @@ export const useLogSource = ({ sourceId, fetch }: { sourceId: string; fetch: Htt

setSourceConfiguration(data);
},
onReject: ignoreCanceledPromise,
},
[sourceId, fetch]
);
Expand All @@ -66,7 +65,6 @@ export const useLogSource = ({ sourceId, fetch }: { sourceId: string; fetch: Htt
setSourceConfiguration(data);
loadSourceStatus();
},
onReject: ignoreCanceledPromise,
},
[sourceId, fetch]
);
Expand All @@ -84,7 +82,6 @@ export const useLogSource = ({ sourceId, fetch }: { sourceId: string; fetch: Htt

setSourceStatus(data);
},
onReject: ignoreCanceledPromise,
},
[sourceId, fetch]
);
Expand Down Expand Up @@ -142,9 +139,7 @@ export const useLogSource = ({ sourceId, fetch }: { sourceId: string; fetch: Htt
);

const loadSource = useCallback(() => {
return Promise.all([loadSourceConfiguration(), loadSourceStatus()]).catch(
ignoreCanceledPromise
);
return Promise.all([loadSourceConfiguration(), loadSourceStatus()]);
}, [loadSourceConfiguration, loadSourceStatus]);

const initialize = useCallback(async () => {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
import { useState, useMemo } from 'react';
import { esKuery } from '../../../../../../../src/plugins/data/public';
import { fetchLogEntries } from '../log_entries/api/fetch_log_entries';
import { ignoreCanceledPromise, useTrackedPromise } from '../../../utils/use_tracked_promise';
import { useTrackedPromise } from '../../../utils/use_tracked_promise';
import { LogEntry, LogEntriesCursor } from '../../../../common/http_api';
import { useKibanaContextForPlugin } from '../../../hooks/use_kibana';

Expand Down Expand Up @@ -63,7 +63,6 @@ export function useLogStream({
onResolve: ({ data }) => {
setEntries(data.entries);
},
onReject: ignoreCanceledPromise,
},
[sourceId, startTimestamp, endTimestamp, query]
);
Expand Down
5 changes: 1 addition & 4 deletions x-pack/plugins/infra/public/containers/source/source.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import {
UpdateSourceMutation,
} from '../../graphql/types';
import { DependencyError, useApolloClient } from '../../utils/apollo_context';
import { ignoreCanceledPromise, useTrackedPromise } from '../../utils/use_tracked_promise';
import { useTrackedPromise } from '../../utils/use_tracked_promise';
import { createSourceMutation } from './create_source.gql_query';
import { sourceQuery } from './query_source.gql_query';
import { updateSourceMutation } from './update_source.gql_query';
Expand Down Expand Up @@ -57,7 +57,6 @@ export const useSource = ({ sourceId }: { sourceId: string }) => {
onResolve: (response) => {
setSource(response.data.source);
},
onReject: ignoreCanceledPromise,
},
[apolloClient, sourceId]
);
Expand Down Expand Up @@ -88,7 +87,6 @@ export const useSource = ({ sourceId }: { sourceId: string }) => {
setSource(response.data.createSource.source);
}
},
onReject: ignoreCanceledPromise,
},
[apolloClient, sourceId]
);
Expand Down Expand Up @@ -119,7 +117,6 @@ export const useSource = ({ sourceId }: { sourceId: string }) => {
setSource(response.data.updateSource.source);
}
},
onReject: ignoreCanceledPromise,
},
[apolloClient, sourceId]
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { useMemo, useState } from 'react';

import { LogEntryCategoryExample } from '../../../../common/http_api';
import { useKibanaContextForPlugin } from '../../../hooks/use_kibana';
import { ignoreCanceledPromise, useTrackedPromise } from '../../../utils/use_tracked_promise';
import { useTrackedPromise } from '../../../utils/use_tracked_promise';
import { callGetLogEntryCategoryExamplesAPI } from './service_calls/get_log_entry_category_examples';

export const useLogEntryCategoryExamples = ({
Expand Down Expand Up @@ -48,7 +48,6 @@ export const useLogEntryCategoryExamples = ({
onResolve: ({ data: { examples } }) => {
setLogEntryCategoryExamples(examples);
},
onReject: ignoreCanceledPromise,
},
[categoryId, endTime, exampleCount, sourceId, startTime]
);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import { useLogSourceContext } from '../../../containers/logs/log_source';
import { LogEntryRateResultsContent } from './page_results_content';
import { LogEntryRateSetupContent } from './page_setup_content';
import { useInterval } from '../../../hooks/use_interval';
import { ignoreCanceledPromise } from '../../../utils/use_tracked_promise';

const JOB_STATUS_POLLING_INTERVAL = 30000;

Expand Down Expand Up @@ -62,10 +61,7 @@ export const LogEntryRatePageContent = memo(() => {
const { showModuleList } = useLogAnalysisSetupFlyoutStateContext();

const fetchAllJobStatuses = useCallback(
() =>
Promise.all([fetchLogEntryCategoriesJobStatus(), fetchLogEntryRateJobStatus()]).catch(
ignoreCanceledPromise
),
() => Promise.all([fetchLogEntryCategoriesJobStatus(), fetchLogEntryRateJobStatus()]),
[fetchLogEntryCategoriesJobStatus, fetchLogEntryRateJobStatus]
);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,7 @@

import { useMemo, useState, useCallback, useEffect, useReducer } from 'react';
import { useMount } from 'react-use';
import {
useTrackedPromise,
CanceledPromiseError,
ignoreCanceledPromise,
} from '../../../utils/use_tracked_promise';
import { useTrackedPromise, CanceledPromiseError } from '../../../utils/use_tracked_promise';
import { callGetLogEntryAnomaliesAPI } from './service_calls/get_log_entry_anomalies';
import { callGetLogEntryAnomaliesDatasetsAPI } from './service_calls/get_log_entry_anomalies_datasets';
import {
Expand Down Expand Up @@ -216,7 +212,6 @@ export const useLogEntryAnomaliesResults = ({
}
setLogEntryAnomalies(anomalies);
},
onReject: ignoreCanceledPromise,
},
[
sourceId,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { useMemo, useState } from 'react';

import { LogEntryExample } from '../../../../common/http_api';
import { useKibanaContextForPlugin } from '../../../hooks/use_kibana';
import { ignoreCanceledPromise, useTrackedPromise } from '../../../utils/use_tracked_promise';
import { useTrackedPromise } from '../../../utils/use_tracked_promise';
import { callGetLogEntryExamplesAPI } from './service_calls/get_log_entry_examples';

export const useLogEntryExamples = ({
Expand Down Expand Up @@ -48,7 +48,6 @@ export const useLogEntryExamples = ({
onResolve: ({ data: { examples } }) => {
setLogEntryExamples(examples);
},
onReject: ignoreCanceledPromise,
},
[dataset, endTime, exampleCount, sourceId, startTime]
);
Expand Down
11 changes: 0 additions & 11 deletions x-pack/plugins/infra/public/utils/use_tracked_promise.ts
Original file line number Diff line number Diff line change
Expand Up @@ -284,15 +284,4 @@ export class CanceledPromiseError extends Error {

export class SilentCanceledPromiseError extends CanceledPromiseError {}

// Ideally we want `error: Error`, but a promise might be rejected with anything.
export function ignoreCanceledPromise(error: unknown) {
if (error instanceof CanceledPromiseError) {
return;
}
if (error instanceof Error) {
throw error;
}
return error;
}

const noOp = () => undefined;

0 comments on commit fb579e9

Please sign in to comment.