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

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

Summary

Maintainability
A
2 hrs
Test Coverage
import { initialFavoriteState, FavoriteState } from '../states/favorite.state';
import { createReducer, on } from '@ngrx/store';
import {
    loadingBaseState,
    loadedBaseState,
    errorBaseState,
} from '../states/base.state';
import {
    LoadFavorite,
    LoadFavoriteSuccess,
    LoadFavoriteFail,
} from '../actions/favorite.actions';

export const reducer = createReducer(
    initialFavoriteState,
    on(LoadFavorite, state => ({
        ...state,
        ...loadingBaseState,
    })),
    on(LoadFavoriteSuccess, (state, { chartFavorite }) => ({
        ...state,
        ...loadedBaseState,
        chartFavorite,
    })),
    on(LoadFavoriteFail, (state, { error }) => ({
        ...state,
        ...errorBaseState,
        error,
    }))
);

export function favoriteReducer(state, action): FavoriteState {
    return reducer(state, action);
}