import { ActionType } from "../utils/ActionsTypes" ; export interface Action { type : ActionType ; data ? : any ; error ? : any ; } export interface ResultState { loading : boolean ; data ? : any ; error ? : any ; } export const InitialState = { loading : false } ; export const reducer = ( state , action ) => { switch ( action . type ) { case ActionType . INITIATE_REQUEST : return { ... state , loading : true , error : null } ; case ActionType . REQUEST_COMPLETE : return { ... state , loading : false , data : action . data , error : action . error } ; case ActionType . UPDATE_RESULT : if ( state . loading ) { return state ; } return { ... state , data : action . data } ; default : return state ; } } ;