/* @flow */ 'use strict'; import { RATE_UPDATE } from '../services/CoinmarketcapService'; import type { Action } from '../flowtype'; import type { FiatRateAction } from '../services/CoinmarketcapService'; export type Fiat = { +network: string; value: string; } export const initialState: Array = []; const update = (state: Array, action: FiatRateAction): Array => { const newState: Array = [ ...state ]; const exists: ?Fiat = newState.find(f => f.network === action.network); if (exists) { exists.value = action.rate.price_usd; } else { newState.push({ network: action.network, value: action.rate.price_usd }) } return newState; } export default (state: Array = initialState, action: Action): Array => { switch (action.type) { case RATE_UPDATE : return update(state, action); default: return state; } }