Files
grafana/public/app/features/datasources/state/reducers.ts

42 lines
1.3 KiB
TypeScript
Raw Normal View History

2018-10-03 16:04:30 +02:00
import { DataSource, DataSourcesState, Plugin } from 'app/types';
import { Action, ActionTypes } from './actions';
import { LayoutModes } from '../../../core/components/LayoutSelector/LayoutSelector';
const initialState: DataSourcesState = {
dataSources: [] as DataSource[],
2018-10-08 14:09:02 +02:00
dataSource: {} as DataSource,
layoutMode: LayoutModes.Grid,
searchQuery: '',
2018-09-28 11:29:18 +02:00
dataSourcesCount: 0,
2018-10-03 16:04:30 +02:00
dataSourceTypes: [] as Plugin[],
2018-10-04 11:42:17 +02:00
dataSourceTypeSearchQuery: '',
};
export const dataSourcesReducer = (state = initialState, action: Action): DataSourcesState => {
switch (action.type) {
case ActionTypes.LoadDataSources:
2018-09-28 11:29:18 +02:00
return { ...state, dataSources: action.payload, dataSourcesCount: action.payload.length };
2018-10-08 14:09:02 +02:00
case ActionTypes.LoadDataSource:
return { ...state, dataSource: action.payload };
case ActionTypes.SetDataSourcesSearchQuery:
return { ...state, searchQuery: action.payload };
case ActionTypes.SetDataSourcesLayoutMode:
return { ...state, layoutMode: action.payload };
2018-10-03 09:56:15 +02:00
case ActionTypes.LoadDataSourceTypes:
return { ...state, dataSourceTypes: action.payload };
2018-10-04 11:42:17 +02:00
case ActionTypes.SetDataSourceTypeSearchQuery:
return { ...state, dataSourceTypeSearchQuery: action.payload };
}
return state;
};
export default {
dataSources: dataSourcesReducer,
};