From f0e20181d488860a549d231021d140ce7d998ed5 Mon Sep 17 00:00:00 2001 From: Hannah Mudge Date: Wed, 25 Jan 2023 12:59:47 -0700 Subject: [PATCH] Clean up type guard --- .../embeddable/options_list_embeddable.tsx | 18 +++++++++--------- .../options_list/options_list_service.ts | 6 +++--- .../public/services/options_list/types.ts | 10 ++++++++-- 3 files changed, 20 insertions(+), 14 deletions(-) diff --git a/src/plugins/controls/public/options_list/embeddable/options_list_embeddable.tsx b/src/plugins/controls/public/options_list/embeddable/options_list_embeddable.tsx index c4ff33f70871e21..5ef18b08a6b0704 100644 --- a/src/plugins/controls/public/options_list/embeddable/options_list_embeddable.tsx +++ b/src/plugins/controls/public/options_list/embeddable/options_list_embeddable.tsx @@ -327,20 +327,17 @@ export class OptionsListEmbeddable extends Embeddable { const { dispatch, - actions: { setPopoverOpen }, + actions: { setPopoverOpen, setLoading }, } = this.reduxEmbeddableTools; - dispatch(setPopoverOpen(false)); + batch(() => { + dispatch(setLoading(false)); + dispatch(setPopoverOpen(false)); + }); super.onFatalError(e); }; diff --git a/src/plugins/controls/public/services/options_list/options_list_service.ts b/src/plugins/controls/public/services/options_list/options_list_service.ts index 4e5b0c7fa457539..f267c74f5f5f6d2 100644 --- a/src/plugins/controls/public/services/options_list/options_list_service.ts +++ b/src/plugins/controls/public/services/options_list/options_list_service.ts @@ -114,10 +114,10 @@ class OptionsListService implements ControlsOptionsListService { } }; - public optionsListResponseWasSuccessful = ( + public optionsListResponseWasFailure = ( response: OptionsListResponse - ): response is OptionsListSuccessResponse => { - return Boolean((response as OptionsListSuccessResponse).suggestions); + ): response is OptionsListFailureResponse => { + return (response as OptionsListFailureResponse).error !== undefined; }; public runOptionsListRequest = async (request: OptionsListRequest, abortSignal: AbortSignal) => { diff --git a/src/plugins/controls/public/services/options_list/types.ts b/src/plugins/controls/public/services/options_list/types.ts index df65943ee59c13d..c78819c27c5d576 100644 --- a/src/plugins/controls/public/services/options_list/types.ts +++ b/src/plugins/controls/public/services/options_list/types.ts @@ -6,7 +6,11 @@ * Side Public License, v 1. */ -import { OptionsListRequest, OptionsListResponse } from '../../../common/options_list/types'; +import { + OptionsListFailureResponse, + OptionsListRequest, + OptionsListResponse, +} from '../../../common/options_list/types'; export interface ControlsOptionsListService { runOptionsListRequest: ( @@ -14,6 +18,8 @@ export interface ControlsOptionsListService { abortSignal: AbortSignal ) => Promise; clearOptionsListCache: () => void; + optionsListResponseWasFailure: ( + response: OptionsListResponse + ) => response is OptionsListFailureResponse; getAllowExpensiveQueries: () => Promise; - optionsListResponseWasSuccessful: (response: OptionsListResponse) => boolean; }