reducers.ts 775 B

123456789101112131415161718192021222324252627
  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 = {
  5. plugins: [] as Plugin[],
  6. searchQuery: '',
  7. layoutMode: LayoutModes.Grid,
  8. };
  9. export const pluginsReducer = (state = initialState, action: Action): PluginsState => {
  10. switch (action.type) {
  11. case ActionTypes.LoadPlugins:
  12. return { ...state, plugins: action.payload };
  13. case ActionTypes.SetPluginsSearchQuery:
  14. return { ...state, searchQuery: action.payload };
  15. case ActionTypes.SetLayoutMode:
  16. return { ...state, layoutMode: action.payload };
  17. }
  18. return state;
  19. };
  20. export default {
  21. plugins: pluginsReducer,
  22. };