mirror of
https://github.com/grafana/grafana.git
synced 2025-02-16 18:34:52 -06:00
89 lines
2.5 KiB
TypeScript
89 lines
2.5 KiB
TypeScript
import { DataSourcesState } from 'app/types';
|
|
import { DataSourceSettings, DataSourcePluginMeta } from '@grafana/ui';
|
|
import {
|
|
dataSourceLoaded,
|
|
dataSourcesLoaded,
|
|
setDataSourcesSearchQuery,
|
|
setDataSourcesLayoutMode,
|
|
dataSourceTypesLoad,
|
|
dataSourceTypesLoaded,
|
|
setDataSourceTypeSearchQuery,
|
|
dataSourceMetaLoaded,
|
|
setDataSourceName,
|
|
setIsDefault,
|
|
} from './actions';
|
|
import { LayoutModes } from 'app/core/components/LayoutSelector/LayoutSelector';
|
|
import { reducerFactory } from 'app/core/redux';
|
|
|
|
export const initialState: DataSourcesState = {
|
|
dataSources: [],
|
|
dataSource: {} as DataSourceSettings,
|
|
layoutMode: LayoutModes.List,
|
|
searchQuery: '',
|
|
dataSourcesCount: 0,
|
|
dataSourceTypes: [],
|
|
dataSourceTypeSearchQuery: '',
|
|
hasFetched: false,
|
|
isLoadingDataSources: false,
|
|
dataSourceMeta: {} as DataSourcePluginMeta,
|
|
};
|
|
|
|
export const dataSourcesReducer = reducerFactory(initialState)
|
|
.addMapper({
|
|
filter: dataSourcesLoaded,
|
|
mapper: (state, action) => ({
|
|
...state,
|
|
hasFetched: true,
|
|
dataSources: action.payload,
|
|
dataSourcesCount: action.payload.length,
|
|
}),
|
|
})
|
|
.addMapper({
|
|
filter: dataSourceLoaded,
|
|
mapper: (state, action) => ({ ...state, dataSource: action.payload }),
|
|
})
|
|
.addMapper({
|
|
filter: setDataSourcesSearchQuery,
|
|
mapper: (state, action) => ({ ...state, searchQuery: action.payload }),
|
|
})
|
|
.addMapper({
|
|
filter: setDataSourcesLayoutMode,
|
|
mapper: (state, action) => ({ ...state, layoutMode: action.payload }),
|
|
})
|
|
.addMapper({
|
|
filter: dataSourceTypesLoad,
|
|
mapper: state => ({ ...state, dataSourceTypes: [], isLoadingDataSources: true }),
|
|
})
|
|
.addMapper({
|
|
filter: dataSourceTypesLoaded,
|
|
mapper: (state, action) => ({
|
|
...state,
|
|
dataSourceTypes: action.payload,
|
|
isLoadingDataSources: false,
|
|
}),
|
|
})
|
|
.addMapper({
|
|
filter: setDataSourceTypeSearchQuery,
|
|
mapper: (state, action) => ({ ...state, dataSourceTypeSearchQuery: action.payload }),
|
|
})
|
|
.addMapper({
|
|
filter: dataSourceMetaLoaded,
|
|
mapper: (state, action) => ({ ...state, dataSourceMeta: action.payload }),
|
|
})
|
|
.addMapper({
|
|
filter: setDataSourceName,
|
|
mapper: (state, action) => ({ ...state, dataSource: { ...state.dataSource, name: action.payload } }),
|
|
})
|
|
.addMapper({
|
|
filter: setIsDefault,
|
|
mapper: (state, action) => ({
|
|
...state,
|
|
dataSource: { ...state.dataSource, isDefault: action.payload },
|
|
}),
|
|
})
|
|
.create();
|
|
|
|
export default {
|
|
dataSources: dataSourcesReducer,
|
|
};
|