From 4a30051858a5c278ada97a6cadfc0c8cb5fabd13 Mon Sep 17 00:00:00 2001 From: apanizo Date: Sun, 13 May 2018 13:33:40 +0200 Subject: [PATCH] WA-238 fetchDailyLimit action definition and its reducer --- src/routes/safe/store/actions/fetchDailyLimit.js | 12 ++++++++++++ src/routes/safe/store/reducer/safe.js | 7 +++++++ 2 files changed, 19 insertions(+) create mode 100644 src/routes/safe/store/actions/fetchDailyLimit.js diff --git a/src/routes/safe/store/actions/fetchDailyLimit.js b/src/routes/safe/store/actions/fetchDailyLimit.js new file mode 100644 index 00000000..5e3c8936 --- /dev/null +++ b/src/routes/safe/store/actions/fetchDailyLimit.js @@ -0,0 +1,12 @@ +// @flow +import type { Dispatch as ReduxDispatch } from 'redux' +import { type GlobalState } from '~/store/index' +import { getDailyLimitFrom } from '~/routes/safe/component/Withdrawn/withdrawn' +import updateDailyLimit from './updateDailyLimit' + +export default (safeAddress: string) => async (dispatch: ReduxDispatch) => { + const ethAddress = 0 + const dailyLimit: DailyLimitProps = await getDailyLimitFrom(safeAddress, ethAddress) + + return dispatch(updateDailyLimit(safeAddress, dailyLimit)) +} diff --git a/src/routes/safe/store/reducer/safe.js b/src/routes/safe/store/reducer/safe.js index a6a4bd31..f35c2ff7 100644 --- a/src/routes/safe/store/reducer/safe.js +++ b/src/routes/safe/store/reducer/safe.js @@ -2,9 +2,11 @@ import { Map, List } from 'immutable' import { handleActions, type ActionType } from 'redux-actions' import addSafe, { ADD_SAFE } from '~/routes/safe/store/actions/addSafe' +import updateDailyLimit, { UPDATE_DAILY_LIMIT } from '~/routes/safe/store/actions/updateDailyLimit' import { makeOwner } from '~/routes/safe/store/model/owner' import { type Safe, makeSafe } from '~/routes/safe/store/model/safe' import { loadSafes, saveSafes } from '~/utils/localStorage' +import { makeDailyLimit } from '~/routes/safe/store/model/dailyLimit' export const SAFE_REDUCER_ID = 'safes' @@ -45,4 +47,9 @@ export default handleActions({ saveSafes(safes.toJSON()) return safes }, + [UPDATE_DAILY_LIMIT]: (state: State, action: ActionType): State => { + const safes = state.updateIn([action.safeAddress, 'dailyLimit'], () => makeDailyLimit(action.dailyLimit)) + saveSafes(safes.toJSON()) + return safes + }, }, Map())