Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
configuration.reducers.ts 782 B
import { ActionReducerMapBuilder } from '@reduxjs/toolkit';
import { getConfigurationOptions } from './configuration.thunks';
import { ConfigurationState, configurationAdapter } from './configuration.adapter';

export const getConfigurationOptionsReducer = (
  builder: ActionReducerMapBuilder<ConfigurationState>,
): void => {
  builder.addCase(getConfigurationOptions.pending, state => {
    state.loading = 'pending';
  });
  builder.addCase(getConfigurationOptions.fulfilled, (state, action) => {
    if (action.payload) {
      state.loading = 'succeeded';
      configurationAdapter.addMany(state, action.payload);
    }
  });
  builder.addCase(getConfigurationOptions.rejected, state => {
    state.loading = 'failed';
    // TODO to discuss manage state of failure
  });
};