reducers.ts 768 B

1234567891011121314151617181920212223
  1. import { Action, ActionTypes } from './actions';
  2. import { Plugin, PluginsState } from 'app/types';
  3. import { LayoutModes } from '../../../core/components/LayoutSelector/LayoutSelector';
  4. export const initialState: PluginsState = { plugins: [] as Plugin[], searchQuery: '', layoutMode: LayoutModes.Grid };
  5. export const pluginsReducer = (state = initialState, action: Action): PluginsState => {
  6. switch (action.type) {
  7. case ActionTypes.LoadPlugins:
  8. return { ...state, plugins: action.payload };
  9. case ActionTypes.SetPluginsSearchQuery:
  10. return { ...state, searchQuery: action.payload };
  11. case ActionTypes.SetLayoutMode:
  12. return { ...state, layoutMode: action.payload };
  13. }
  14. return state;
  15. };
  16. export default {
  17. plugins: pluginsReducer,
  18. };