Merge pull request #1380 from esteemapp/bugfix/walletpage

Wallet bug fixes
This commit is contained in:
Feruz M 2019-12-11 08:10:10 +02:00 committed by GitHub
commit ec06701a30
7 changed files with 43 additions and 29 deletions

View File

@ -16,6 +16,7 @@ import globalStyles from '../../globalStyles';
const TransactionView = ({ transactions, type, refreshing, setRefreshing, isLoading }) => {
const intl = useIntl();
const transaction_types = ['ESTM', 'STEEM', 'SBD', 'SP'];
const _renderLoading = () => {
if (isLoading) {
@ -44,7 +45,8 @@ const TransactionView = ({ transactions, type, refreshing, setRefreshing, isLoad
const _renderItem = (item, index) => {
return (
Object.keys(item).length > 0 && (
Object.keys(item).length > 0 &&
item.value.indexOf(transaction_types[type]) > -1 && (
<CollapsibleCard
key={item.created.toString()}
noBorder

View File

@ -19,6 +19,7 @@
"outgoing_transfer_title": "Outgoing transfer",
"checkin_extra": "Bonus",
"delegation": "Delegation",
"delegations": "Delegations",
"delegation_title": "Delegation reward",
"delegation_desc": "Earn ESTM everyday for delegation",
"post_title": "Points for post",

View File

@ -55,6 +55,7 @@ const WalletContainer = ({
const [estimatedSpValue, setEstimatedSpValue] = useState(0);
const [unclaimedBalance, setUnclaimedBalance] = useState('');
const [estimatedAmount, setEstimatedAmount] = useState(0);
const [delegationsAmount, setDelegationsAmount] = useState(0);
const [transferHistory, setTransferHistory] = useState([]);
const intl = useIntl();
const dispatch = useDispatch();
@ -67,10 +68,6 @@ const WalletContainer = ({
_getWalletData(selectedUser);
}, [_getWalletData, selectedUser]);
useEffect(() => {
_getWalletData(selectedUser);
}, [_getWalletData, selectedUser]);
useEffect(() => {
const _transferHistory = userActivities.filter(
item =>
@ -106,6 +103,12 @@ const WalletContainer = ({
setEstimatedSteemValue(get(walletData, 'estimatedSteemValue', 0));
setEstimatedSbdValue(get(walletData, 'estimatedSbdValue', 0));
setEstimatedSpValue(get(walletData, 'estimatedSpValue', 0));
setDelegationsAmount(
vestsToSp(
get(walletData, 'vestingSharesReceived', 0) - get(walletData, 'vestingSharesDelegated', 0),
get(walletData, 'steemPerMVests', 0),
).toFixed(3),
);
setUnclaimedBalance(
`${
@ -140,9 +143,6 @@ const WalletContainer = ({
),
);
setEstimatedWalletValue && setEstimatedWalletValue(_walletData.estimatedValue);
setEstimatedSbdValue && setEstimatedSbdValue(_walletData.estimatedSbdValue);
setEstimatedSteemValue && setEstimatedSteemValue(_walletData.estimatedSteemValue);
setEstimatedSpValue && setEstimatedSpValue(_walletData.estimatedSpValue);
},
[globalProps, intl.formatNumber, setEstimatedWalletValue, steemPerMVests],
);
@ -282,6 +282,7 @@ const WalletContainer = ({
estimatedSteemValue,
estimatedSbdValue,
estimatedSpValue,
delegationsAmount,
navigate: _navigate,
steemDropdown: STEEM_DROPDOWN,
sbdDropdown: SBD_DROPDOWN,

View File

@ -1,5 +1,5 @@
import React from 'react';
import { View } from 'react-native';
import { View, Text } from 'react-native';
import { WalletHeader, FormattedCurrency } from '../../../components';
import { SteemWalletContainer, AccountContainer } from '../../../containers';
@ -20,6 +20,7 @@ const SpView = ({ handleOnSelected, index, currentIndex, refreshing: reload }) =
spBalance,
isLoading,
estimatedSpValue,
delegationsAmount,
steemPowerDropdown,
unclaimedBalance,
navigate,
@ -45,6 +46,15 @@ const SpView = ({ handleOnSelected, index, currentIndex, refreshing: reload }) =
currentIndex={currentIndex}
showIconList={false}
valueDescriptions={[
{
textKey: 'delegations',
value: (
<Text>
{delegationsAmount}
{' SP'}
</Text>
),
},
{
textKey: 'estimated_value',
value: <FormattedCurrency isApproximate isToken value={estimatedSpValue} />,

View File

@ -100,7 +100,7 @@ const WalletScreen = () => {
scrollEventThrottle={16}
>
<Transaction
type="wallet"
type={currentIndex}
transactions={selectedUserActivities}
refreshing={false}
setRefreshing={setRefreshing}

View File

@ -172,25 +172,28 @@ export const groomingWalletData = async (user, globalProps, userCurrency) => {
const state = await getState(`/@${get(user, 'name')}/transfers`);
const { accounts } = state;
if (!accounts) {
return walletData;
}
const userdata = get(accounts, get(user, 'name'), '');
// TODO: move them to utils these so big for a lifecycle function
walletData.rewardSteemBalance = parseToken(user.reward_steem_balance);
walletData.rewardSbdBalance = parseToken(user.reward_sbd_balance);
walletData.rewardVestingSteem = parseToken(user.reward_vesting_steem);
walletData.rewardSteemBalance = parseToken(userdata.reward_steem_balance);
walletData.rewardSbdBalance = parseToken(userdata.reward_sbd_balance);
walletData.rewardVestingSteem = parseToken(userdata.reward_vesting_steem);
walletData.hasUnclaimedRewards =
walletData.rewardSteemBalance > 0 ||
walletData.rewardSbdBalance > 0 ||
walletData.rewardVestingSteem > 0;
walletData.balance = parseToken(user.balance);
walletData.vestingShares = parseToken(user.vesting_shares);
walletData.vestingSharesDelegated = parseToken(user.delegated_vesting_shares);
walletData.vestingSharesReceived = parseToken(user.received_vesting_shares);
walletData.balance = parseToken(userdata.balance);
walletData.vestingShares = parseToken(userdata.vesting_shares);
walletData.vestingSharesDelegated = parseToken(userdata.delegated_vesting_shares);
walletData.vestingSharesReceived = parseToken(userdata.received_vesting_shares);
walletData.vestingSharesTotal =
walletData.vestingShares - walletData.vestingSharesDelegated + walletData.vestingSharesReceived;
walletData.sbdBalance = parseToken(user.sbd_balance);
walletData.savingBalance = parseToken(user.savings_balance);
walletData.savingBalanceSbd = parseToken(user.savings_sbd_balance);
walletData.sbdBalance = parseToken(userdata.sbd_balance);
walletData.savingBalance = parseToken(userdata.savings_balance);
walletData.savingBalanceSbd = parseToken(userdata.savings_sbd_balance);
const feedHistory = await getFeedHistory();
const base = parseToken(feedHistory.current_median_history.base);
@ -215,17 +218,14 @@ export const groomingWalletData = async (user, globalProps, userCurrency) => {
walletData.estimatedSteemValue = (walletData.balance + walletData.savingBalance) * ppSteem;
walletData.estimatedSbdValue = totalSbd * ppSbd;
walletData.estimatedSpValue =
vestsToSp(walletData.vestingSharesTotal, walletData.steemPerMVests) * ppSteem;
vestsToSp(walletData.vestingShares, walletData.steemPerMVests) * ppSteem;
walletData.showPowerDown = user.next_vesting_withdrawal !== '1969-12-31T23:59:59';
const timeDiff = Math.abs(parseDate(user.next_vesting_withdrawal) - new Date());
walletData.showPowerDown = userdata.next_vesting_withdrawal !== '1969-12-31T23:59:59';
const timeDiff = Math.abs(parseDate(userdata.next_vesting_withdrawal) - new Date());
walletData.nextVestingWithdrawal = Math.round(timeDiff / (1000 * 3600));
const { transfer_history: transferHistory, other_history: virtualHistory } = get(
accounts,
user.name,
[],
);
const { transfer_history: transferHistory, other_history: virtualHistory } = userdata;
const realHistory = transferHistory
? transferHistory.slice(Math.max(transferHistory.length - 50, 0))
: [];