Firing off an action instead of listening to location changes

pull/15090/head
Hugo Häggmark 6 years ago
parent 40f410562a
commit 6b0400eed2
  1. 8
      public/app/features/explore/Wrapper.tsx
  2. 9
      public/app/features/explore/state/actionTypes.ts
  3. 12
      public/app/features/explore/state/actions.ts
  4. 9
      public/app/features/explore/state/reducers.ts

@ -7,7 +7,7 @@ import { StoreState } from 'app/types';
import { ExploreId, ExploreUrlState } from 'app/types/explore';
import { parseUrlState } from 'app/core/utils/explore';
import { initializeExploreSplit } from './state/actions';
import { initializeExploreSplit, resetExplore } from './state/actions';
import ErrorBoundary from './ErrorBoundary';
import Explore from './Explore';
import { CustomScrollbar } from '@grafana/ui';
@ -16,6 +16,7 @@ interface WrapperProps {
initializeExploreSplit: typeof initializeExploreSplit;
split: boolean;
updateLocation: typeof updateLocation;
resetExplore: typeof resetExplore;
urlStates: { [key: string]: string };
}
@ -42,6 +43,10 @@ export class Wrapper extends Component<WrapperProps> {
}
}
componentWillUnmount() {
this.props.resetExplore();
}
render() {
const { split } = this.props;
const { leftState, rightState } = this.urlStates;
@ -74,6 +79,7 @@ const mapStateToProps = (state: StoreState) => {
const mapDispatchToProps = {
initializeExploreSplit,
updateLocation,
resetExplore,
};
export default hot(module)(connect(mapStateToProps, mapDispatchToProps)(Wrapper));

@ -9,7 +9,6 @@ import {
ResultType,
QueryTransaction,
} from 'app/types/explore';
import { UpdateLocationAction } from 'app/core/actions/location';
export enum ActionTypes {
AddQueryRow = 'explore/ADD_QUERY_ROW',
@ -42,6 +41,7 @@ export enum ActionTypes {
ToggleGraph = 'explore/TOGGLE_GRAPH',
ToggleLogs = 'explore/TOGGLE_LOGS',
ToggleTable = 'explore/TOGGLE_TABLE',
ResetExplore = 'explore/RESET_EXPLORE',
}
export interface AddQueryRowAction {
@ -271,6 +271,11 @@ export interface ToggleLogsAction {
};
}
export interface ResetExploreAction {
type: ActionTypes.ResetExplore;
payload: {};
}
export type Action =
| AddQueryRowAction
| ChangeQueryAction
@ -299,4 +304,4 @@ export type Action =
| ToggleGraphAction
| ToggleLogsAction
| ToggleTableAction
| UpdateLocationAction;
| ResetExploreAction;

@ -21,7 +21,7 @@ import { updateLocation } from 'app/core/actions';
// Types
import { StoreState } from 'app/types';
import { DataQuery, DataSourceSelectItem, QueryHint } from '@grafana/ui/src/types';
import { DataQuery, DataSourceSelectItem, QueryHint } from '@grafana/ui/src/types';
import { getDatasourceSrv } from 'app/features/plugins/datasource_srv';
import {
ExploreId,
@ -48,7 +48,6 @@ import {
ScanStopAction,
} from './actionTypes';
type ThunkResult<R> = ThunkAction<R, StoreState, undefined, ThunkableAction>;
/**
@ -766,3 +765,12 @@ export function toggleTable(exploreId: ExploreId): ThunkResult<void> {
}
};
}
/**
* Resets state for explore.
*/
export function resetExplore(): ThunkResult<void> {
return dispatch => {
dispatch({ type: ActionTypes.ResetExplore, payload: {} });
};
}

@ -8,7 +8,6 @@ import { ExploreItemState, ExploreState, QueryTransaction } from 'app/types/expl
import { DataQuery } from '@grafana/ui/src/types';
import { Action, ActionTypes } from './actionTypes';
import { CoreActionTypes } from 'app/core/actions/location';
export const DEFAULT_RANGE = {
from: 'now-6h',
@ -440,12 +439,8 @@ export const exploreReducer = (state = initialExploreState, action: Action): Exp
return { ...state, split: true };
}
case CoreActionTypes.UpdateLocation: {
if (action.payload.path && action.payload.path !== '/explore') {
return initialExploreState;
}
return state;
case ActionTypes.ResetExplore: {
return initialExploreState;
}
}

Loading…
Cancel
Save