Balance:
{isTokenLoading ? (
-
+
) : (
{balance.toLocaleString(undefined, {
@@ -109,7 +112,7 @@ export default function SwapItem({
)}
-
+
≈${' '}
{price.toLocaleString(undefined, {
minimumFractionDigits: 2,
diff --git a/src/features/tokens/components/DataTable.tsx b/src/features/tokens/components/DataTable.tsx
index 2c48297..866c342 100644
--- a/src/features/tokens/components/DataTable.tsx
+++ b/src/features/tokens/components/DataTable.tsx
@@ -51,6 +51,7 @@ import { cn } from '@/lib/utils'
interface DataTableProps {
columns: ColumnDef[]
data: TData[]
+ noDataMessage?: string
onRefresh?: () => void
isLoading?: boolean
isRefreshing?: boolean
@@ -60,6 +61,7 @@ interface DataTableProps {
export function DataTable({
columns,
data,
+ noDataMessage,
onRefresh,
isLoading,
isRefreshing,
@@ -286,7 +288,7 @@ export function DataTable({
) : (
- No results.
+ {noDataMessage ? noDataMessage : 'No data.'}
)}
diff --git a/src/features/tokens/services.ts b/src/features/tokens/services.ts
index 2cd94a1..0724faf 100644
--- a/src/features/tokens/services.ts
+++ b/src/features/tokens/services.ts
@@ -95,7 +95,8 @@ export const useGetTokens = () => {
message: `Successfully get token with address ${ownerAddress.toBase58()}`,
data: filteredTokenData
}
- }
+ },
+ enabled: !!ownerAddress
})
}
diff --git a/src/features/wrapping/components/WrapBalanceItem.tsx b/src/features/wrapping/components/WrapBalanceItem.tsx
index 14b7284..3947610 100644
--- a/src/features/wrapping/components/WrapBalanceItem.tsx
+++ b/src/features/wrapping/components/WrapBalanceItem.tsx
@@ -1,3 +1,6 @@
+'use client'
+
+import { useWallet } from '@bbachain/wallet-adapter-react'
import Image from 'next/image'
import { Skeleton } from '@/components/ui/skeleton'
@@ -12,17 +15,27 @@ interface WrapBalanceItemProps {
export default function WrapBalanceItem({ type, balance, isLoading }: WrapBalanceItemProps) {
const isWBBA = type === 'WBBA'
const isMobile = useIsMobile()
+
+ const { publicKey: ownerAddress } = useWallet()
+ const isWalletConnected = Boolean(ownerAddress)
return (
{`${type} Balance`}
- {isLoading ? (
-
- ) : (
- {`${balance.toLocaleString(undefined, {
- minimumFractionDigits: 0,
- maximumFractionDigits: 6
- })} ${type}`}
+ {!isWalletConnected && (
+
+ Please connect your wallet to see your balance
+
+ )}
+ {isWalletConnected && isLoading && }
+ {isWalletConnected && !isLoading && (
+ {`${balance.toLocaleString(
+ undefined,
+ {
+ minimumFractionDigits: 0,
+ maximumFractionDigits: 6
+ }
+ )} ${type}`}
)}
state.openWalletList)
+ const isWalletConnected = Boolean(ownerAddress)
+
return (
{/* Input Section */}
@@ -74,16 +81,26 @@ export default function WrapContent({
)
diff --git a/src/features/wrapping/components/WrapInputItem.tsx b/src/features/wrapping/components/WrapInputItem.tsx
index 15c29c9..9a682d3 100644
--- a/src/features/wrapping/components/WrapInputItem.tsx
+++ b/src/features/wrapping/components/WrapInputItem.tsx
@@ -1,3 +1,4 @@
+import { useWallet } from '@bbachain/wallet-adapter-react'
import Image from 'next/image'
import { Dispatch, SetStateAction } from 'react'
@@ -25,7 +26,9 @@ export default function WrapInputItem({
}: WrapInputItemProps) {
const isWBBA = type === 'WBBA'
const isMobile = useIsMobile()
- const isBalanceNotEnough = isBase && Number(amount) > balance
+ const { publicKey: ownerAddress } = useWallet()
+ const isWalletConnected = Boolean(ownerAddress)
+ const isBalanceNotEnough = isWalletConnected && isBase && Number(amount) > balance
const isAmountPositive = Number(amount) >= 0
const isInValid = isBalanceNotEnough || !isAmountPositive
@@ -62,7 +65,7 @@ export default function WrapInputItem({
type="button"
size="sm"
className="px-1 absolute left-20 -top-1 text-dark-grey text-xs font-normal"
- disabled={isBalanceNotEnough}
+ disabled={!isWalletConnected || isBalanceNotEnough}
onClick={
isBalanceNotEnough
? () => {
diff --git a/src/services/wallet.tsx b/src/services/wallet.tsx
index b03ad3a..4b67723 100644
--- a/src/services/wallet.tsx
+++ b/src/services/wallet.tsx
@@ -51,7 +51,7 @@ export function useGetTokenBalanceByMint({ mintAddress }: { mintAddress: string
const { publicKey: ownerAddress } = useWallet()
const { connection } = useConnection()
return useQuery({
- queryKey: [SERVICES_KEY.WALLET.GET_TOKEN_BALANCE_BY_MINT, mintAddress],
+ queryKey: [SERVICES_KEY.WALLET.GET_TOKEN_BALANCE_BY_MINT, mintAddress, ownerAddress?.toBase58()],
queryFn: async () => {
if (!ownerAddress) throw new Error('No wallet connected')