Skip to content

Commit

Permalink
fix: resolved new assets page bugs (#1055)
Browse files Browse the repository at this point in the history
* fix: close the modal after claiming EVM withdrawal

* fix: close the modal after claiming EVM withdrawal (2)

* fix: ModalVesting.vue

* fix: link to subscan for WASM projects

* feat: added Reserved section

* feat: added Reserved section (2)

* fix: words

* fix: refactor
  • Loading branch information
impelcrypto committed Nov 28, 2023
1 parent 20ec748 commit 9f42378
Show file tree
Hide file tree
Showing 8 changed files with 70 additions and 38 deletions.
51 changes: 36 additions & 15 deletions src/components/assets/NativeAssetList.vue
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
<div class="row--header__right">
<div v-if="!isSkeleton" class="column--balance">
<div class="column--amount text--amount">
{{ isTruncate ? $n(truncate(bal, 3)) : Number(bal) }}
{{ $n(truncate(bal, 3)) }}
</div>
<div class="column--symbol text--symbol">{{ nativeTokenSymbol }}</div>
</div>
Expand All @@ -35,7 +35,7 @@
</div>
<div v-if="!isSkeleton" class="column--balance">
<span class="column--amount text--amount">
{{ isTruncate ? $n(truncate(transferableBalance, 3)) : Number(transferableBalance) }}
{{ $n(truncate(transferableBalance, 3)) }}
</span>
<span class="column--symbol text--symbol">{{ nativeTokenSymbol }}</span>
</div>
Expand Down Expand Up @@ -94,7 +94,7 @@
</div>
<div v-if="!isSkeleton" class="column--balance">
<span class="column--amount text--amount">
{{ isTruncate ? $n(truncate(numEvmDeposit, 3)) : Number(numEvmDeposit) }}
{{ $n(truncate(numEvmDeposit, 3)) }}
</span>
<span class="column--symbol text--symbol">{{ nativeTokenSymbol }}</span>
</div>
Expand All @@ -121,7 +121,7 @@
</div>
<div v-if="!isSkeleton" class="column--balance">
<div class="column--amount text--amount">
{{ $n(truncate(lockInDappStaking + vestingTtl, 3)) }}
{{ $n(truncate(lockInDappStaking + vestingTtl + reservedTtl, 3)) }}
</div>
<div class="column--symbol text--symbol">
{{ nativeTokenSymbol }}
Expand Down Expand Up @@ -161,7 +161,7 @@
<div class="column--balance">
<template v-if="!isSkeleton">
<div class="column--amount text--amount">
{{ isTruncate ? $n(truncate(vestingTtl, 3)) : Number(vestingTtl) }}
{{ $n(truncate(vestingTtl, 3)) }}
</div>
<div class="column--symbol text--symbol">
{{ nativeTokenSymbol }}
Expand All @@ -181,16 +181,36 @@
</div>
</div>

<!-- Reserved -->
<div class="row--expand">
<div class="row--expand__info">
<div class="column--label text--label">{{ $t('assets.reserved') }}</div>
<div class="column--balance">
<template v-if="!isSkeleton">
<div class="column--amount text--amount">
{{ $n(truncate(reservedTtl, 3)) }}
</div>
<div class="column--symbol text--symbol">
{{ nativeTokenSymbol }}
</div>
</template>
<template v-else>
<div class="skeleton--right">
<q-skeleton animation="fade" class="skeleton--md" />
</div>
</template>
</div>
</div>
</div>

<!-- Staking -->
<div class="row--expand">
<div class="row--expand__info">
<div class="column--label text--label">{{ $t('common.staking') }}</div>
<div class="column--balance">
<template v-if="!isSkeleton">
<div class="column--amount text--amount">
{{
isTruncate ? $n(truncate(lockInDappStaking, 3)) : Number(lockInDappStaking)
}}
{{ $n(truncate(lockInDappStaking, 3)) }}
</div>
<div class="column--symbol text--symbol">
{{ nativeTokenSymbol }}
Expand Down Expand Up @@ -249,9 +269,7 @@ import ModalEvmWithdraw from 'src/components/assets/modals/ModalEvmWithdraw.vue'
import ModalFaucet from 'src/components/assets/modals/ModalFaucet.vue';
import ModalVesting from 'src/components/assets/modals/ModalVesting.vue';
import { Path } from 'src/router';
import TokenBalance from 'src/components/common/TokenBalance.vue';
import { faucetBalRequirement } from 'src/config/wallets';
import Balloon from 'src/components/common/Balloon.vue';
export default defineComponent({
components: {
Expand All @@ -267,6 +285,7 @@ export default defineComponent({
const bal = ref<number>(0);
const balUsd = ref<number | null>(null);
const vestingTtl = ref<number>(0);
const reservedTtl = ref<number>(0);
const lockInDappStaking = ref<number>(0);
const isRocstar = ref<boolean>(false);
const isShibuya = ref<boolean>(false);
Expand Down Expand Up @@ -337,7 +356,7 @@ export default defineComponent({
// Memo: `vesting ` -> there has been inputted 1 space here
const vesting = accountDataRef.locks.find((it) => u8aToString(it.id) === 'vesting ');
const dappStake = accountDataRef.locks.find((it) => u8aToString(it.id) === 'dapstake');
const reserved = accountDataRef.reserved;
if (vesting) {
const amount = String(vesting.amount);
vestingTtl.value = Number(ethers.utils.formatEther(amount));
Expand All @@ -346,6 +365,11 @@ export default defineComponent({
const amount = String(dappStake.amount);
lockInDappStaking.value = Number(ethers.utils.formatEther(amount));
}
if (reserved) {
const amount = reserved.toString();
reservedTtl.value = Number(ethers.utils.formatEther(amount));
}
});
// Ref: https://stackoverflow.com/questions/48143381/css-expand-contract-animation-to-show-hide-content
Expand All @@ -361,8 +385,6 @@ export default defineComponent({
const { width, screenSize } = useBreakpoints();
const isTruncate = !nativeTokenSymbol.value.toUpperCase().includes('BTC');
return {
bal,
nativeTokenSymbol,
Expand All @@ -388,10 +410,9 @@ export default defineComponent({
isExpand,
isBalloonNativeToken,
isBalloonNativeTokenClosing,
width,
screenSize,
isTruncate,
reservedTtl,
truncate,
buildTransferPageLink,
handleModalVesting,
Expand Down
1 change: 1 addition & 0 deletions src/components/assets/Rewards.vue
Original file line number Diff line number Diff line change
Expand Up @@ -80,6 +80,7 @@ export default defineComponent({
if (pendingRewards.value > 0 && canClaimWithoutError.value) {
await claimAll();
await setPendingRewards();
return;
}
Expand Down
10 changes: 8 additions & 2 deletions src/components/assets/modals/ModalEvmWithdraw.vue
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<astar-button
:disabled="0 >= numEvmDeposit"
class="button--confirm"
@click="sendTransaction"
@click="handleWithdraw"
>
{{ $t('confirm') }}
</astar-button>
Expand Down Expand Up @@ -64,10 +64,16 @@ export default defineComponent({
};
const { numEvmDeposit, sendTransaction, selectedTip, nativeTipPrice, setSelectedTip } =
useEvmDeposit();
const handleWithdraw = async (): Promise<void> => {
await closeModal();
await sendTransaction();
};
return {
closeModal,
numEvmDeposit,
sendTransaction,
handleWithdraw,
isClosingModal,
selectedTip,
nativeTipPrice,
Expand Down
9 changes: 7 additions & 2 deletions src/components/assets/modals/ModalVesting.vue
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@
<astar-button
:disabled="0 >= info.claimableAmount"
class="button-unlock"
@click="sendTransaction"
@click="handleSendTransaction"
>
{{ $t('assets.modals.unlock') }}
</astar-button>
Expand Down Expand Up @@ -98,11 +98,16 @@ export default defineComponent({
};
const { info, sendTransaction, selectedTip, nativeTipPrice, setSelectedTip } = useVesting();
const handleSendTransaction = async (): Promise<void> => {
await closeModal();
await sendTransaction();
};
return {
info,
isClosingModal,
closeModal,
sendTransaction,
handleSendTransaction,
selectedTip,
nativeTipPrice,
setSelectedTip,
Expand Down
20 changes: 14 additions & 6 deletions src/components/dapp-staking/dapp/ProjectDetails.vue
Original file line number Diff line number Diff line change
Expand Up @@ -65,13 +65,15 @@
<span class="text--tooltip">{{ $t('copy') }}</span>
</q-tooltip>
</button>
<a :href="blockscout + dapp.dapp.address" target="_blank" rel="noopener noreferrer">
<a :href="explorerUrl" target="_blank" rel="noopener noreferrer">
<button class="box--share btn--primary">
<div class="icon--primary">
<astar-icon-external-link />
</div>
<q-tooltip>
<span class="text--tooltip">{{ $t('blockscout') }}</span>
<span class="text--tooltip">
{{ $t(dapp.dapp.address.startsWith('0x') ? 'blockscout' : 'subscan') }}
</span>
</q-tooltip>
</button>
</a>
Expand Down Expand Up @@ -223,9 +225,15 @@ export default defineComponent({
const { currentNetworkIdx } = useNetworkInfo();
const store = useStore();
const { t } = useI18n();
const blockscout = computed<string>(
() => `${providerEndpoints[currentNetworkIdx.value].blockscout}/address/`
);
const explorerUrl = computed<string>(() => {
const address = props.dapp.dapp.address;
const blockscout = `${providerEndpoints[currentNetworkIdx.value].blockscout}/address/`;
const subscan = `${providerEndpoints[currentNetworkIdx.value].subscan}/account/`;
const explorer = address.startsWith('0x') ? blockscout : subscan;
return explorer + address;
});
const copyAddress = (address: string): void => {
copy(address);
store.dispatch('general/showAlertMsg', {
Expand Down Expand Up @@ -263,7 +271,7 @@ export default defineComponent({
getShortenAddress,
copyAddress,
goLink,
blockscout,
explorerUrl,
communities,
virtualMachineTags,
CommunityType,
Expand Down
3 changes: 1 addition & 2 deletions src/components/sidenav/styles/sidebar-desktop.scss
Original file line number Diff line number Diff line change
Expand Up @@ -25,13 +25,12 @@

.sidebar {
position: relative;
z-index: 1;
z-index: 100;
width: 224px;
padding-top: 24px;
background: #081029;
display: flex;
flex-direction: column;
z-index: 1;
}

.sidebar--height-decentralized {
Expand Down
11 changes: 1 addition & 10 deletions src/hooks/useEvmDeposit.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,27 +7,18 @@ import { container } from 'src/v2/common';
import { IAssetsService } from 'src/v2/services';
import { Symbols } from 'src/v2/symbols';
import { computed, ref, watch } from 'vue';
import { useI18n } from 'vue-i18n';

export function useEvmDeposit() {
const evmDeposit = ref<string>('0');
const numEvmDeposit = ref<number>(0);
const isEvmDeposit = ref<boolean>(false);
const { currentAccount } = useAccount();
const store = useStore();
const { t } = useI18n();
const isLoading = computed(() => store.getters['general/isLoading']);
const isH160 = computed(() => store.getters['general/isH160Formatted']);
const { selectedTip, nativeTipPrice, setSelectedTip } = useGasPrice();

const sendTransaction = async (amount: number) => {
if (Number(amount) === 0) {
store.dispatch('general/showAlertMsg', {
msg: t('toast.amountMustNotBeZero'),
alertType: 'error',
});
return;
}
const sendTransaction = async () => {
const assetsService = container.get<IAssetsService>(Symbols.AssetsService);
await assetsService.evmWithdraw({
amount: evmDeposit.value,
Expand Down
3 changes: 2 additions & 1 deletion src/i18n/en-US/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -492,11 +492,12 @@ export default {
reward: 'Reward',
lockedTokens: 'Locked tokens',
vesting: 'Vesting',
reserved: 'Reserved',
favorite: 'Favorite',
addToFavorite: 'Add to favorite',
removeFromFavorite: 'Remove from favorite',
unifyAccounts: 'Unify accounts',
yourEstimatedRewards: 'Claim your estimated Rewards',
yourEstimatedRewards: 'Claim your estimated rewards',
toast: {
completedMessage: 'You have sent {transferAmt} {symbol} to {toAddress}',
completedBridgeMessage: 'You have sent {transferAmt} {symbol} from {fromChain} to {toChain}',
Expand Down

0 comments on commit 9f42378

Please sign in to comment.