diff --git a/packages/ui/src/entities/token/use-token-balance.tsx b/packages/ui/src/entities/token/use-token-balance.tsx index ec018ff..3aad969 100644 --- a/packages/ui/src/entities/token/use-token-balance.tsx +++ b/packages/ui/src/entities/token/use-token-balance.tsx @@ -86,7 +86,7 @@ export function useTokenBalance( return empty }, queryKey: ["useTokenBalance", String(address), String(publicKey)], - refetchInterval: opts?.refetchInterval ?? 6000, + refetchInterval: opts?.refetchInterval ?? 12000, refetchIntervalInBackground: opts?.refetchIntervalInBackground, }) diff --git a/packages/ui/src/entities/upgrade/index.tsx b/packages/ui/src/entities/upgrade/index.tsx index e016120..d250aa1 100644 --- a/packages/ui/src/entities/upgrade/index.tsx +++ b/packages/ui/src/entities/upgrade/index.tsx @@ -30,7 +30,7 @@ export async function upgradeToken( const result = (_amount * Math.pow(10, originalMint.decimals)) / 1e10 return result -} + } /// Anciliary creation // Store N amount of token to upgrade diff --git a/packages/ui/src/widgets/token-upgrade.tsx b/packages/ui/src/widgets/token-upgrade.tsx index 5830247..7497bf6 100644 --- a/packages/ui/src/widgets/token-upgrade.tsx +++ b/packages/ui/src/widgets/token-upgrade.tsx @@ -9,7 +9,7 @@ import useTokenAmount from "../entities/token/use-token-amount" import { Container } from "./token-upgrade/container" import { UpgradeButton } from "../features/upgrade-button" import { useMint } from "../entities/token/use-mint" -import { useTokenBalance, placeholderData } from "../entities/token/use-token-balance" +import { useTokenBalance } from "../entities/token/use-token-balance" import { withErrorBoundary } from "react-error-boundary" import { useTokenUpgrade } from "../entities/use-token-upgrade" @@ -39,7 +39,7 @@ export function TokenUpgradeBase({ tokenUpgradeProgramId, }: TokenUpgradeProps) { const [{ amount, destination }, setAction] = useTokenAmount() - const { balance } = useTokenBalance(tokenAddress, { placeholderData }) + const { balance } = useTokenBalance(tokenAddress) const { mint } = useMint(tokenAddress) const { mutate } = useTokenUpgrade() @@ -106,6 +106,12 @@ export function TokenUpgradeBase({ const isAllowedUpgrade = typeof amount !== "undefined" && amount > 0 + const error = useMemo(() => { + if (balance?.decimals === -1) + return new Error("Wallet does not hold a token") + return undefined + }, [balance]) + return ( { address?: string balance?: string + error?: Error label?: string name?: string onAmountChange?: (a: { amount: number }) => void @@ -36,6 +44,7 @@ export default function Amount({ address, balance = "0", disabled, + error, label = "Amount", name = "amount", onAmountChange, @@ -49,6 +58,7 @@ export default function Amount({ }: AmountProps) { let variants = {} const hasBalance = balance && Number(balance) > 0 + const hasError = Boolean(error) const inpRef = useRef(null) const onValueChange = useCallback( @@ -79,6 +89,7 @@ export default function Amount({ if (disabled) variants = { variant: "disabled" } if (hasBalance) variants = { variant: "active" } + if (hasError) variants = { ...variants, err: "true" } const displaySymbol = useMemo(() => { let s = symbol @@ -101,7 +112,7 @@ export default function Amount({
{hasBalance && ( @@ -124,7 +135,8 @@ export default function Amount({ }} >
+ {hasError && ( +

+ {error?.message} +

+ )} {Number(balance) > 0 ? (