Commit 6b0400ee by Hugo Häggmark

Firing off an action instead of listening to location changes

parent 40f41056
......@@ -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;
......@@ -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,13 +439,9 @@ export const exploreReducer = (state = initialExploreState, action: Action): Exp
return { ...state, split: true };
}
case CoreActionTypes.UpdateLocation: {
if (action.payload.path && action.payload.path !== '/explore') {
case ActionTypes.ResetExplore: {
return initialExploreState;
}
return state;
}
}
if (action.payload) {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment