hisptz/90-90-90-cascade-graph-widget

View on GitHub
src/app/store/reducers/extension.reducer.ts

Summary

Maintainability
A
2 hrs
Test Coverage
import { createReducer, on } from '@ngrx/store';
import { loadingBaseState, loadedBaseState, errorBaseState } from '../states/base.state';
import { LoadFavoriteExtension, LoadFavoriteExtensionSuccess, LoadFavoriteExtensionFail } from '../actions';
import { ExtensionState, initialExtensionState } from '../states/extension.state';

export const reducer = createReducer(
    initialExtensionState,
    on(LoadFavoriteExtension, state => ({
        ...state,
        ...loadingBaseState
    })),
    on(LoadFavoriteExtensionSuccess, (state, { chartExtension }) => ({
        ...state,
        ...loadedBaseState,
        chartExtension
    })),
    on(LoadFavoriteExtensionFail, (state, { error }) => ({
        ...state,
        ...errorBaseState,
        error
    }))
);

export function extensionReducer(state: ExtensionState, action): ExtensionState {
    return reducer(state, action);
}