Skip to content

Commit

Permalink
Refactor AppState type location
Browse files Browse the repository at this point in the history
  • Loading branch information
kertal committed Nov 2, 2022
1 parent c2fe3f5 commit 9404801
Show file tree
Hide file tree
Showing 13 changed files with 78 additions and 80 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@
import React, { useState } from 'react';
import { storiesOf } from '@storybook/react';
import { __IntlProvider as IntlProvider } from '@kbn/i18n-react';
import { AppState } from '../../../services/discover_app_state_container';
import { getDataViewMock } from '../../../../../__mocks__/__storybook_mocks__/get_data_view_mock';
import { withDiscoverServices } from '../../../../../__mocks__/__storybook_mocks__/with_discover_services';
import { getDocumentsLayoutProps, getPlainRecordLayoutProps } from './get_layout_props';
import { DiscoverLayout } from '../discover_layout';
import { setHeaderActionMenuMounter } from '../../../../../kibana_services';
import { AppState } from '../../../services/discover_state';
import { DiscoverLayoutProps } from '../types';

setHeaderActionMenuMounter(() => void 0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { mountWithIntl } from '@kbn/test-jest-helpers';
import { setHeaderActionMenuMounter } from '../../../../kibana_services';
import { esHits } from '../../../../__mocks__/es_hits';
import { savedSearchMock } from '../../../../__mocks__/saved_search';
import { AppState, DiscoverStateContainer } from '../../services/discover_state';
import { DiscoverStateContainer } from '../../services/discover_state';
import { DataDocuments$ } from '../../hooks/use_saved_search';
import { discoverServiceMock } from '../../../../__mocks__/services';
import { FetchStatus } from '../../../types';
Expand All @@ -23,6 +23,7 @@ import { buildDataTableRecord } from '../../../../utils/build_data_record';
import { EsHitRecord } from '../../../../types';
import { DiscoverMainProvider } from '../../services/discover_state_provider';
import { getDiscoverStateMock } from '../../../../__mocks__/discover_state.mock';
import { AppState } from '../../services/discover_app_state_container';

setHeaderActionMenuMounter(jest.fn());

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { renderHook } from '@testing-library/react-hooks';
import { waitFor } from '@testing-library/react';
import { discoverServiceMock } from '../../../__mocks__/services';
import { useTextBasedQueryLanguage } from './use_text_based_query_language';
import { AppState, DiscoverStateContainer } from '../services/discover_state';
import { DiscoverStateContainer } from '../services/discover_state';
import { BehaviorSubject } from 'rxjs';
import { FetchStatus } from '../../types';
import { DataDocuments$, RecordRawType } from './use_saved_search';
Expand All @@ -19,6 +19,7 @@ import { AggregateQuery, Query } from '@kbn/es-query';
import { dataViewMock } from '../../../__mocks__/data_view';
import { DataViewListItem } from '@kbn/data-views-plugin/common';
import { savedSearchMock } from '../../../__mocks__/saved_search';
import { AppState } from '../services/discover_app_state_container';

function getHookProps(
replaceUrlAppState: (newState: Partial<AppState>) => Promise<void>,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,64 @@ import {
createStateContainerReactHelpers,
ReduxLikeStateContainer,
} from '@kbn/kibana-utils-plugin/common';
import { AppState } from './discover_state';
import { AggregateQuery, Filter, Query } from '@kbn/es-query';
import { DiscoverGridSettings } from '../../../components/discover_grid/types';
import { VIEW_MODE } from '../../../components/view_mode_toggle';

export interface AppState {
/**
* Columns displayed in the table
*/
columns?: string[];
/**
* Array of applied filters
*/
filters?: Filter[];
/**
* Data Grid related state
*/
grid?: DiscoverGridSettings;
/**
* Hide chart
*/
hideChart?: boolean;
/**
* id of the used data view
*/
index?: string;
/**
* Used interval of the histogram
*/
interval?: string;
/**
* Lucence or KQL query
*/
query?: Query | AggregateQuery;
/**
* Array of the used sorting [[field,direction],...]
*/
sort?: string[][];
/**
* id of the used saved query
*/
savedQuery?: string;
/**
* Table view: Documents vs Field Statistics
*/
viewMode?: VIEW_MODE;
/**
* Hide mini distribution/preview charts when in Field Statistics mode
*/
hideAggregatedPreview?: boolean;
/**
* Document explorer row height option
*/
rowHeight?: number;
/**
* Number of rows in the grid per page
*/
rowsPerPage?: number;
}

export const { Provider: DiscoverAppStateProvider, useSelector: useAppStateSelector } =
createStateContainerReactHelpers<ReduxLikeStateContainer<AppState>>();
Original file line number Diff line number Diff line change
Expand Up @@ -9,14 +9,7 @@
import { cloneDeep, isEqual } from 'lodash';
import { i18n } from '@kbn/i18n';
import { History } from 'history';
import {
Filter,
FilterStateStore,
compareFilters,
COMPARE_ALL_OPTIONS,
Query,
AggregateQuery,
} from '@kbn/es-query';
import { COMPARE_ALL_OPTIONS, compareFilters, Filter, FilterStateStore } from '@kbn/es-query';
import {
createKbnUrlStateStorage,
createStateContainer,
Expand All @@ -36,82 +29,26 @@ import {
} from '@kbn/data-plugin/public';
import { DataView } from '@kbn/data-views-plugin/public';
import { SavedSearch } from '@kbn/saved-search-plugin/public';
import { AppState } from './discover_app_state_container';
import {
InternalStateContainer,
getInternalStateContainer,
InternalStateContainer,
} from './discover_internal_state_container';
import { getStateDefaults } from '../utils/get_state_defaults';
import { DiscoverServices } from '../../../build_services';
import { DiscoverGridSettings } from '../../../components/discover_grid/types';
import { handleSourceColumnState } from '../../../utils/state_helpers';
import { DISCOVER_APP_LOCATOR, DiscoverAppLocatorParams } from '../../../locator';
import { VIEW_MODE } from '../../../components/view_mode_toggle';
import { cleanupUrlState } from '../utils/cleanup_url_state';
import { getValidFilters } from '../../../utils/get_valid_filters';

export interface AppState {
/**
* Columns displayed in the table
*/
columns?: string[];
/**
* Array of applied filters
*/
filters?: Filter[];
/**
* Data Grid related state
*/
grid?: DiscoverGridSettings;
/**
* Hide chart
*/
hideChart?: boolean;
/**
* id of the used data view
*/
index?: string;
/**
* Used interval of the histogram
*/
interval?: string;
/**
* Lucence or KQL query
*/
query?: Query | AggregateQuery;
/**
* Array of the used sorting [[field,direction],...]
*/
sort?: string[][];
/**
* id of the used saved query
*/
savedQuery?: string;
/**
* Table view: Documents vs Field Statistics
*/
viewMode?: VIEW_MODE;
/**
* Hide mini distribution/preview charts when in Field Statistics mode
*/
hideAggregatedPreview?: boolean;
/**
* Document explorer row height option
*/
rowHeight?: number;
/**
* Number of rows in the grid per page
*/
rowsPerPage?: number;
}

export interface AppStateUrl extends Omit<AppState, 'sort'> {
/**
* Necessary to take care of legacy links [fieldName,direction]
*/
sort?: string[][] | [string, string];
}

interface DiscoverStateContainerArgs {
interface DiscoverStateContainerParams {
/**
* Browser history
*/
Expand Down Expand Up @@ -205,7 +142,7 @@ export function getDiscoverStateContainer({
history,
savedSearch,
services,
}: DiscoverStateContainerArgs): DiscoverStateContainer {
}: DiscoverStateContainerParams): DiscoverStateContainer {
const storeInSessionStorage = services.uiSettings.get('state:storeInSessionStorage');
const toasts = services.core.notifications.toasts;
const defaultAppState = getStateDefaults({
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,9 @@
* Side Public License, v 1.
*/
import { isOfAggregateQueryType } from '@kbn/es-query';
import { AppState } from '../services/discover_app_state_container';
import { migrateLegacyQuery } from '../../../utils/migrate_legacy_query';
import { AppState, AppStateUrl } from '../services/discover_state';
import { AppStateUrl } from '../services/discover_state';

/**
* Takes care of the given url state, migrates legacy props and cleans up empty props
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@ import { SearchSource } from '@kbn/data-plugin/public';
import { RequestAdapter } from '@kbn/inspector-plugin/common';
import { savedSearchMock } from '../../../__mocks__/saved_search';
import { ReduxLikeStateContainer } from '@kbn/kibana-utils-plugin/common';
import { AppState } from '../services/discover_state';
import { discoverServiceMock } from '../../../__mocks__/services';
import { fetchAll } from './fetch_all';
import {
Expand All @@ -31,6 +30,7 @@ import { fetchTotalHits } from './fetch_total_hits';
import { buildDataTableRecord } from '../../../utils/build_data_record';
import { dataViewMock } from '../../../__mocks__/data_view';
import type { SearchResponse } from '@elastic/elasticsearch/lib/api/types';
import { AppState } from '../services/discover_app_state_container';

jest.mock('./fetch_documents', () => ({
fetchDocuments: jest.fn().mockResolvedValue([]),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ import { Adapters } from '@kbn/inspector-plugin/common';
import { ReduxLikeStateContainer } from '@kbn/kibana-utils-plugin/common';
import { DataViewType } from '@kbn/data-views-plugin/public';
import type { SavedSearch, SortOrder } from '@kbn/saved-search-plugin/public';
import { AppState } from '../services/discover_app_state_container';
import { getRawRecordType } from './get_raw_record_type';
import {
sendCompleteMsg,
Expand All @@ -23,7 +24,6 @@ import { updateSearchSource } from './update_search_source';
import { fetchDocuments } from './fetch_documents';
import { fetchTotalHits } from './fetch_total_hits';
import { fetchChart } from './fetch_chart';
import { AppState } from '../services/discover_state';
import { FetchStatus } from '../../types';
import {
DataCharts$,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,10 @@ import { RequestAdapter } from '@kbn/inspector-plugin/common';
import { savedSearchMockWithTimeField } from '../../../__mocks__/saved_search';
import { fetchChart, updateSearchSource } from './fetch_chart';
import { ReduxLikeStateContainer } from '@kbn/kibana-utils-plugin/common';
import { AppState } from '../services/discover_state';
import { discoverServiceMock } from '../../../__mocks__/services';
import { calculateBounds } from '@kbn/data-plugin/public';
import { FetchDeps } from './fetch_all';
import { AppState } from '../services/discover_app_state_container';

function getDeps() {
const deps = {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import { cloneDeep, isEqual } from 'lodash';
import { IUiSettingsClient } from '@kbn/core/public';
import { SavedSearch } from '@kbn/saved-search-plugin/public';
import { AppState } from '../services/discover_app_state_container';
import { DiscoverServices } from '../../../build_services';
import { getDefaultSort, getSortArray } from '../../../utils/sorting';
import {
Expand All @@ -18,7 +19,6 @@ import {
SORT_DEFAULT_ORDER_SETTING,
} from '../../../../common';

import { AppState } from '../services/discover_state';
import { CHART_HIDDEN_KEY } from '../components/layout/use_discover_histogram';

function getDefaultColumns(savedSearch: SavedSearch, uiSettings: IUiSettingsClient) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@ import { isOfAggregateQueryType } from '@kbn/es-query';
import { DataView } from '@kbn/data-views-plugin/public';
import { SavedObjectSaveOpts } from '@kbn/saved-objects-plugin/public';
import { SavedSearch, SortOrder, saveSavedSearch } from '@kbn/saved-search-plugin/public';
import { AppState } from '../services/discover_app_state_container';
import { updateSearchSource } from './update_search_source';
import { AppState } from '../services/discover_state';
import { DiscoverServices } from '../../../build_services';
/**
* Helper function to update and persist the given savedSearch
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import { configMock } from '../../../__mocks__/config';
import { dataViewMock } from '../../../__mocks__/data_view';
import { dataViewsMock } from '../../../__mocks__/data_views';
import { Capabilities } from '@kbn/core/types';
import { AppState } from '../../../application/main/services/discover_state';
import { AppState } from '../../../application/main/services/discover_app_state_container';

function getStateColumnAction(state: AppState, setAppState: (state: Partial<AppState>) => void) {
return getStateColumnActions({
Expand Down
3 changes: 2 additions & 1 deletion src/plugins/discover/public/utils/get_sharing_data.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,13 +15,14 @@ import type {
} from '@kbn/data-plugin/public';
import type { Filter } from '@kbn/es-query';
import type { SavedSearch, SortOrder } from '@kbn/saved-search-plugin/public';
import { AppState } from '../application/main/services/discover_app_state_container';
import { getSortForSearchSource } from './sorting';
import {
DOC_HIDE_TIME_COLUMN_SETTING,
SEARCH_FIELDS_FROM_SOURCE,
SORT_DEFAULT_ORDER_SETTING,
} from '../../common';
import { AppState, isEqualFilters } from '../application/main/services/discover_state';
import { isEqualFilters } from '../application/main/services/discover_state';

/**
* Preparing data to share the current state as link or CSV/Report
Expand Down

0 comments on commit 9404801

Please sign in to comment.