grafana/public/app/features/variables/inspect/reducer.ts
Hugo Häggmark 63746d027b
Variables: Improves inspection performance and unknown filtering (#31811)
* Refactor: moves inspect calculation to Redux

* Refactor: adds valid filters and tests
2021-03-09 12:49:05 +01:00

47 lines
1.3 KiB
TypeScript

import { UsagesToNetwork, VariableUsageTree } from './utils';
import { createSlice, PayloadAction } from '@reduxjs/toolkit';
export interface VariableInspectState {
unknown: VariableUsageTree[];
usages: VariableUsageTree[];
unknownsNetwork: UsagesToNetwork[];
usagesNetwork: UsagesToNetwork[];
unknownExits: boolean;
}
export const initialVariableInspectState: VariableInspectState = {
unknown: [],
usages: [],
unknownsNetwork: [],
usagesNetwork: [],
unknownExits: false,
};
const variableInspectReducerSlice = createSlice({
name: 'templating/inspect',
initialState: initialVariableInspectState,
reducers: {
initInspect: (
state,
action: PayloadAction<{
unknown: VariableUsageTree[];
usages: VariableUsageTree[];
unknownsNetwork: UsagesToNetwork[];
usagesNetwork: UsagesToNetwork[];
unknownExits: boolean;
}>
) => {
const { unknown, usages, unknownExits, unknownsNetwork, usagesNetwork } = action.payload;
state.usages = usages;
state.unknown = unknown;
state.unknownsNetwork = unknownsNetwork;
state.unknownExits = unknownExits;
state.usagesNetwork = usagesNetwork;
},
},
});
export const variableInspectReducer = variableInspectReducerSlice.reducer;
export const { initInspect } = variableInspectReducerSlice.actions;