kibana/x-pack/plugins/searchprofiler/public/application/store/store.ts
Brandon Kobel 4584a8b570
Elastic License 2.0 (#90099)
* Updating everything except the license headers themselves

* Applying ESLint rules

* Manually replacing the stragglers
2021-02-03 18:12:39 -08:00

43 lines
1 KiB
TypeScript

/*
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
* or more contributor license agreements. Licensed under the Elastic License
* 2.0; you may not use this file except in compliance with the Elastic License
* 2.0.
*/
import { useReducer } from 'react';
import { reducer } from './reducer';
import { Operation, ShardSerialized, Targets } from '../types';
export type OperationNoChildParent = Omit<Operation, 'children' | 'parent'>;
interface HighlightDetails {
indexName: string;
operation: OperationNoChildParent;
shardName: string;
}
export interface State {
profiling: boolean;
pristine: boolean;
highlightDetails: HighlightDetails | null;
activeTab: Targets | null;
currentResponse: ShardSerialized[] | null;
}
export const initialState: State = {
profiling: false,
pristine: true,
highlightDetails: null,
activeTab: null,
currentResponse: null,
};
export const useStore = () => {
const [state, dispatch] = useReducer(reducer, initialState);
return {
state,
dispatch,
};
};