From cbcdfb187a99f7b8d2f4700654054069cddcbb76 Mon Sep 17 00:00:00 2001 From: Travis Eden Date: Tue, 17 Jul 2018 19:14:29 -0400 Subject: [PATCH 1/2] fetch rewards after successfully claiming reward --- src/renderer/redux/actions/rewards.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/renderer/redux/actions/rewards.js b/src/renderer/redux/actions/rewards.js index a20bfcb48..d98d4a9b6 100644 --- a/src/renderer/redux/actions/rewards.js +++ b/src/renderer/redux/actions/rewards.js @@ -55,6 +55,7 @@ export function doClaimRewardType(rewardType, options) { }); const success = successReward => { + dispatch(doRewardList()); dispatch({ type: ACTIONS.CLAIM_REWARD_SUCCESS, data: { From 0d642b2be1e74ffe6ffda3001e9e0bbb6355bd43 Mon Sep 17 00:00:00 2001 From: Travis Eden Date: Tue, 17 Jul 2018 19:26:03 -0400 Subject: [PATCH 2/2] move reward fetching from rewards page to reward summary component on wallet overview page --- src/renderer/component/rewardSummary/index.js | 14 ++- src/renderer/component/rewardSummary/view.jsx | 85 +++++++++++-------- src/renderer/page/rewards/view.jsx | 5 -- 3 files changed, 60 insertions(+), 44 deletions(-) diff --git a/src/renderer/component/rewardSummary/index.js b/src/renderer/component/rewardSummary/index.js index 54124dfda..3ac4d29e9 100644 --- a/src/renderer/component/rewardSummary/index.js +++ b/src/renderer/component/rewardSummary/index.js @@ -1,10 +1,18 @@ -import React from 'react'; import { connect } from 'react-redux'; -import { selectUnclaimedRewardValue } from 'redux/selectors/rewards'; +import { selectUnclaimedRewardValue, selectFetchingRewards } from 'redux/selectors/rewards'; +import { doRewardList } from 'redux/actions/rewards'; import RewardSummary from './view'; const select = state => ({ unclaimedRewardAmount: selectUnclaimedRewardValue(state), + fetching: selectFetchingRewards(state), }); -export default connect(select, null)(RewardSummary); +const perform = dispatch => ({ + fetchRewards: () => dispatch(doRewardList()), +}); + +export default connect( + select, + perform +)(RewardSummary); diff --git a/src/renderer/component/rewardSummary/view.jsx b/src/renderer/component/rewardSummary/view.jsx index 5436897d6..0a74fdfb6 100644 --- a/src/renderer/component/rewardSummary/view.jsx +++ b/src/renderer/component/rewardSummary/view.jsx @@ -2,47 +2,60 @@ import * as React from 'react'; import Button from 'component/button'; import CreditAmount from 'component/common/credit-amount'; +import BusyIndicator from 'component/common/busy-indicator'; type Props = { unclaimedRewardAmount: number, + fetching: boolean, + fetchRewards: () => void, }; -const RewardSummary = (props: Props) => { - const { unclaimedRewardAmount } = props; - const hasRewards = unclaimedRewardAmount > 0; +class RewardSummary extends React.Component { + componentDidMount() { + this.props.fetchRewards(); + } - return ( -
-
{__('Rewards')}
-

- {hasRewards ? ( - - {__('You have')} -   - -   - {__('in unclaimed rewards')}. - - ) : ( - - {__('There are no rewards available at this time, please check back later')}. - - )} -

-
-
-

- {__('Read our')}{' '} -

- ); -}; + render() { + const { unclaimedRewardAmount, fetching } = this.props; + const hasRewards = unclaimedRewardAmount > 0; + + return ( +
+
+ {__('Rewards')} + {fetching && } +
+

+ {!fetching && + (hasRewards ? ( + + {__('You have')} +   + +   + {__('in unclaimed rewards')}. + + ) : ( + + {__('There are no rewards available at this time, please check back later')}. + + ))} +

+
+
+

+ {__('Read our')}{' '} +

+ ); + } +} export default RewardSummary; diff --git a/src/renderer/page/rewards/view.jsx b/src/renderer/page/rewards/view.jsx index d9e577c60..7f98b50e8 100644 --- a/src/renderer/page/rewards/view.jsx +++ b/src/renderer/page/rewards/view.jsx @@ -10,7 +10,6 @@ import type { Reward } from 'types/reward'; type Props = { doAuth: () => void, - fetchRewards: () => void, navigate: string => void, fetching: boolean, rewards: Array, @@ -27,10 +26,6 @@ type Props = { }; class RewardsPage extends React.PureComponent { - componentDidMount() { - this.props.fetchRewards(); - } - renderPageHeader() { const { doAuth, navigate, user, daemonSettings } = this.props;