diff --git a/src/platform/plugins/shared/controls/public/controls/esql_control/get_esql_control_factory.tsx b/src/platform/plugins/shared/controls/public/controls/esql_control/get_esql_control_factory.tsx index 22fd8ccdb9c43..982b34fc5dd75 100644 --- a/src/platform/plugins/shared/controls/public/controls/esql_control/get_esql_control_factory.tsx +++ b/src/platform/plugins/shared/controls/public/controls/esql_control/get_esql_control_factory.tsx @@ -13,7 +13,8 @@ import { BehaviorSubject } from 'rxjs'; import { css } from '@emotion/react'; import { EuiComboBox } from '@elastic/eui'; import { apiPublishesESQLVariables } from '@kbn/esql-variables-types'; -import { useBatchedPublishingSubjects } from '@kbn/presentation-publishing'; +import { useBatchedPublishingSubjects, apiHasParentApi } from '@kbn/presentation-publishing'; +import { tracksOverlays } from '@kbn/presentation-containers'; import type { ESQLControlState } from '@kbn/esql/public'; import { ESQL_CONTROL } from '../../../common'; import type { ESQLControlApi } from './types'; @@ -36,11 +37,17 @@ export const getESQLControlFactory = (): ControlFactory { + if (apiHasParentApi(controlGroupApi) && tracksOverlays(controlGroupApi.parentApi)) { + controlGroupApi.parentApi.clearOverlays(); + } + }; const onSaveControl = (updatedState: ESQLControlState) => { controlGroupApi?.replacePanel(uuid, { panelType: 'esqlControl', initialState: updatedState, }); + closeOverlay(); }; const api = buildApi( @@ -65,6 +72,7 @@ export const getESQLControlFactory = (): ControlFactory