@@ -8,6 +8,7 @@ import { BehaviorSubject, Subject, merge } from 'rxjs';
8
8
import { debounceTime } from 'rxjs/operators' ;
9
9
import { i18n } from '@osd/i18n' ;
10
10
import { useEffect } from 'react' ;
11
+ import { cloneDeep } from 'lodash' ;
11
12
import { RequestAdapter } from '../../../../../inspector/public' ;
12
13
import { DiscoverServices } from '../../../build_services' ;
13
14
import { search } from '../../../../../data/public' ;
@@ -30,7 +31,6 @@ import {
30
31
getResponseInspectorStats ,
31
32
} from '../../../opensearch_dashboards_services' ;
32
33
import { SEARCH_ON_PAGE_LOAD_SETTING } from '../../../../common' ;
33
- import { SortOrder } from '../../../saved_searches/types' ;
34
34
35
35
export enum ResultStatus {
36
36
UNINITIALIZED = 'uninitialized' ,
@@ -253,9 +253,29 @@ export const useSearch = (services: DiscoverServices) => {
253
253
( async ( ) => {
254
254
const savedSearchInstance = await getSavedSearchById ( savedSearchId || '' ) ;
255
255
setSavedSearch ( savedSearchInstance ) ;
256
+
257
+ // sync initial app filters from savedObject to filterManager
258
+ const filters = cloneDeep ( savedSearchInstance . searchSource . getOwnField ( 'filter' ) ) ;
259
+ const query =
260
+ savedSearchInstance . searchSource . getField ( 'query' ) ||
261
+ data . query . queryString . getDefaultQuery ( ) ;
262
+ const actualFilters = [ ] ;
263
+
264
+ if ( filters !== undefined ) {
265
+ const result = typeof filters === 'function' ? filters ( ) : filters ;
266
+ if ( result !== undefined ) {
267
+ actualFilters . push ( ...( Array . isArray ( result ) ? result : [ result ] ) ) ;
268
+ }
269
+ }
270
+
271
+ filterManager . setAppFilters ( actualFilters ) ;
272
+ data . query . queryString . setQuery ( query ) ;
256
273
} ) ( ) ;
257
274
258
275
return ( ) => { } ;
276
+ // This effect will only run when getSavedSearchById is called, which is
277
+ // only called when the component is first mounted.
278
+ // eslint-disable-next-line react-hooks/exhaustive-deps
259
279
} , [ getSavedSearchById , savedSearchId ] ) ;
260
280
261
281
return {
0 commit comments