diff --git a/packages/web/src/pages/pay-and-earn-page/components/CoinCard.tsx b/packages/web/src/pages/pay-and-earn-page/components/CoinCard.tsx
index bb383cbd050..9df8b1020a4 100644
--- a/packages/web/src/pages/pay-and-earn-page/components/CoinCard.tsx
+++ b/packages/web/src/pages/pay-and-earn-page/components/CoinCard.tsx
@@ -2,6 +2,17 @@ import { ReactNode } from 'react'
import { Flex, Text, useTheme, IconCaretRight, Artwork } from '@audius/harmony'
+import Skeleton from 'components/skeleton/Skeleton'
+
+const CoinCardSkeleton = () => {
+ return (
+
+
+
+
+ )
+}
+
export type CoinCardProps = {
icon: string | ReactNode
symbol: string
@@ -19,7 +30,7 @@ export const CoinCard = ({
loading = false,
onClick
}: CoinCardProps) => {
- const { color, motion, spacing } = useTheme()
+ const { color, spacing } = useTheme()
const renderIcon = () => {
if (typeof icon === 'string') {
@@ -51,25 +62,24 @@ export const CoinCard = ({
>
{renderIcon()}
-
-
-
- {balance}
-
-
- {symbol}
-
-
-
- {dollarValue}
-
+
+ {loading ? (
+
+ ) : (
+ <>
+
+
+ {balance}
+
+
+ {symbol}
+
+
+
+ {dollarValue}
+
+ >
+ )}
{onClick ? : null}
diff --git a/packages/web/src/pages/pay-and-earn-page/components/YourCoins.tsx b/packages/web/src/pages/pay-and-earn-page/components/YourCoins.tsx
index eaf13a3b42f..d6ad5330a2a 100644
--- a/packages/web/src/pages/pay-and-earn-page/components/YourCoins.tsx
+++ b/packages/web/src/pages/pay-and-earn-page/components/YourCoins.tsx
@@ -1,7 +1,5 @@
import { Fragment, useCallback, useContext } from 'react'
-import { env } from 'process'
-
import {
useUserCoins,
useCurrentUserId,
@@ -29,11 +27,37 @@ import { encodeHashId } from '@audius/sdk'
import { useDispatch } from 'react-redux'
import { push } from 'redux-first-history'
+import Skeleton from 'components/skeleton/Skeleton'
import { ToastContext } from 'components/toast/ToastContext'
+import { env } from 'services/env'
import { AudioCoinCard } from './AudioCoinCard'
import { CoinCard } from './CoinCard'
+const YourCoinsSkeleton = () => {
+ const { spacing } = useTheme()
+ const { isMobile } = useMedia()
+
+ return (
+
+
+
+
+
+
+
+
+
+
+
+ )
+}
+
const messages = {
...buySellMessages,
managedAccount: "You can't do that as a managed user",
@@ -95,7 +119,8 @@ const CoinCardWithBalance = ({ coin }: { coin: UserCoin }) => {
const isLoading = isTokenBalanceLoading || isTokenPriceLoading
- if (coin.mint === env.WAUDIO_MINT_ADDRESS) return
+ if (coin.mint === env.WAUDIO_MINT_ADDRESS)
+ return handleCoinClick(coin.mint)} />
return (
{
})
if (isLoadingCoins || !userIdString) {
- return null
+ return
}
return (