Skip to content
This repository has been archived by the owner on Jun 24, 2022. It is now read-only.

Claim available on profile #2063

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions src/custom/components/Header/index.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -205,7 +205,7 @@ const UniIcon = styled.div`
}
`

const VCowAmount = styled(UNIAmountMod)`
export const VCowButton = styled(UNIAmountMod)`
${({ theme }) => theme.cowToken.background};
${({ theme }) => theme.cowToken.boxShadow};
color: white;
Expand Down Expand Up @@ -265,7 +265,7 @@ export default function Header() {
<NetworkCard />
<HeaderElement>
<UNIWrapper onClick={handleOnClickClaim}>
<VCowAmount active={!!account} style={{ pointerEvents: 'auto' }}>
<VCowButton active={!!account} style={{ pointerEvents: 'auto' }}>
{claimTxn && !claimTxn?.receipt ? (
<Dots>
<Trans>Claiming vCOW...</Trans>
Expand All @@ -276,7 +276,7 @@ export default function Header() {
<Trans>vCOW</Trans>
</>
)}
</VCowAmount>
</VCowButton>
</UNIWrapper>
<AccountElement active={!!account} style={{ pointerEvents: 'auto' }}>
{account && userEthBalance && (
Expand Down
53 changes: 42 additions & 11 deletions src/custom/pages/Profile/index.tsx
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
import { useHistory } from 'react-router-dom'
import { Trans } from '@lingui/macro'

import { Txt } from 'assets/styles/styled'
import {
FlexCol,
Expand All @@ -23,7 +26,7 @@ import { HelpCircle, RefreshCcw } from 'react-feather'
import Web3Status from 'components/Web3Status'
import useReferralLink from 'hooks/useReferralLink'
import useFetchProfile from 'hooks/useFetchProfile'
import { numberFormatter } from 'utils/format'
import { formatMax, formatSmart, numberFormatter } from 'utils/format'
import { getExplorerAddressLink } from 'utils/explorer'
import useTimeAgo from 'hooks/useTimeAgo'
import { MouseoverTooltipContent } from 'components/Tooltip'
Expand All @@ -33,6 +36,12 @@ import AffiliateStatusCheck from 'components/AffiliateStatusCheck'
import { useHasOrders } from 'api/gnosisProtocol/hooks'
import CowProtocolLogo from 'components/CowProtocolLogo'
import { Title } from 'components/Page'
import { useTokenBalance } from 'state/wallet/hooks'
import { V_COW } from 'constants/tokens'
import { AMOUNT_PRECISION } from 'constants/index'
import { useUserUnclaimedAmount } from 'state/claim/hooks'
import { UNIWrapper } from 'components/Header/HeaderMod'
import { VCowButton } from 'components/Header'

export default function Profile() {
const referralLink = useReferralLink()
Expand All @@ -42,6 +51,12 @@ export default function Profile() {
const isTradesTooltipVisible = account && chainId == 1 && !!profileData?.totalTrades
const hasOrders = useHasOrders(account)

const vCowBalance = useTokenBalance(account || undefined, chainId ? V_COW[chainId] : undefined)
const availableClaim = useUserUnclaimedAmount(account)

const history = useHistory()
const handleOnClickClaim = () => history.push('/claim')

const renderNotificationMessages = (
<>
{error && (
Expand All @@ -60,19 +75,35 @@ export default function Profile() {
return (
<Container>
<ProfileWrapper>
<ProfileGridWrap horizontal>
{/* TODO: please fix this horrible thing I did */}
<ProfileGridWrap horizontal style={{ display: 'flex' }}>
<CardHead>
<Title>Profile</Title>
</CardHead>
<VCOWBalance>
<CowProtocolLogo size={46} />
<ProfileFlexCol>
<Txt fs={14}>Balance</Txt>
<Txt fs={18}>
<strong>102,02 vCOW</strong>
</Txt>
</ProfileFlexCol>
</VCOWBalance>
{availableClaim?.greaterThan('0') && (
<VCOWBalance>
You have {formatSmart(availableClaim)} vCOW unclaimed
<UNIWrapper onClick={handleOnClickClaim}>
<VCowButton active>
<>
<CowProtocolLogo />
<Trans>Claim</Trans>
</>
</VCowButton>
</UNIWrapper>
</VCOWBalance>
)}
{vCowBalance && (
<VCOWBalance>
<CowProtocolLogo size={46} />
<ProfileFlexCol>
<Txt fs={14}>Balance</Txt>
<Txt fs={18} title={`${formatMax(vCowBalance)} vCOW`}>
<strong>{formatSmart(vCowBalance, AMOUNT_PRECISION) || '0'} vCOW</strong>
</Txt>
</ProfileFlexCol>
</VCOWBalance>
)}
</ProfileGridWrap>
</ProfileWrapper>
{chainId && chainId === ChainId.MAINNET && <AffiliateStatusCheck />}
Expand Down