diff --git a/package-lock.json b/package-lock.json index be6ab49..a7abe90 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "pezkuwi-telegram-miniapp", - "version": "1.0.193", + "version": "1.0.221", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "pezkuwi-telegram-miniapp", - "version": "1.0.193", + "version": "1.0.221", "license": "MIT", "dependencies": { "@pezkuwi/api": "^16.5.36", @@ -53,7 +53,7 @@ "prettier": "^3.8.1", "tailwindcss": "^3.4.11", "tronweb": "^6.2.0", - "typescript": "^5.5.3", + "typescript": "^5.9.3", "vite": "^5.4.1", "vitest": "^4.0.18" }, diff --git a/package.json b/package.json index 07c964c..4102aeb 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pezkuwi-telegram-miniapp", - "version": "1.0.224", + "version": "1.0.225", "type": "module", "description": "Pezkuwichain Telegram Mini App - Forum, Announcements, Rewards", "author": "Pezkuwichain Team", @@ -81,7 +81,7 @@ "prettier": "^3.8.1", "tailwindcss": "^3.4.11", "tronweb": "^6.2.0", - "typescript": "^5.5.3", + "typescript": "^5.9.3", "vite": "^5.4.1", "vitest": "^4.0.18" }, diff --git a/src/components/p2p/BalanceCard.tsx b/src/components/p2p/BalanceCard.tsx index e2e835c..633e059 100644 --- a/src/components/p2p/BalanceCard.tsx +++ b/src/components/p2p/BalanceCard.tsx @@ -1,4 +1,4 @@ -import { useState, useEffect } from 'react'; +import { useState, useEffect, useCallback } from 'react'; import { Wallet, Lock, RefreshCw } from 'lucide-react'; import { cn } from '@/lib/utils'; import { useAuth } from '@/contexts/AuthContext'; @@ -19,7 +19,7 @@ export function BalanceCard({ onRefresh }: BalanceCardProps) { const [loading, setLoading] = useState(true); const [refreshing, setRefreshing] = useState(false); - const fetchBalances = async () => { + const fetchBalances = useCallback(async () => { if (!sessionToken) return; try { const data = await getInternalBalance(sessionToken); @@ -30,11 +30,11 @@ export function BalanceCard({ onRefresh }: BalanceCardProps) { setLoading(false); setRefreshing(false); } - }; + }, [sessionToken]); useEffect(() => { fetchBalances(); - }, [sessionToken]); + }, [fetchBalances]); const handleRefresh = () => { hapticImpact('light'); @@ -65,7 +65,9 @@ export function BalanceCard({ onRefresh }: BalanceCardProps) { disabled={refreshing} className="p-1.5 rounded-full hover:bg-muted/50 transition-colors" > - + diff --git a/src/components/p2p/CreateOfferModal.tsx b/src/components/p2p/CreateOfferModal.tsx index 63dff28..66d3d82 100644 --- a/src/components/p2p/CreateOfferModal.tsx +++ b/src/components/p2p/CreateOfferModal.tsx @@ -4,7 +4,12 @@ import { cn } from '@/lib/utils'; import { useAuth } from '@/contexts/AuthContext'; import { useTranslation } from '@/i18n'; import { useTelegram } from '@/hooks/useTelegram'; -import { createP2POffer, getPaymentMethods, getInternalBalance, type PaymentMethod } from '@/lib/p2p-api'; +import { + createP2POffer, + getPaymentMethods, + getInternalBalance, + type PaymentMethod, +} from '@/lib/p2p-api'; interface CreateOfferModalProps { isOpen: boolean; @@ -39,9 +44,7 @@ export function CreateOfferModal({ isOpen, onClose, onOfferCreated }: CreateOffe useEffect(() => { if (!isOpen || !sessionToken) return; - getPaymentMethods(sessionToken, fiatCurrency) - .then(setPaymentMethods) - .catch(console.error); + getPaymentMethods(sessionToken, fiatCurrency).then(setPaymentMethods).catch(console.error); }, [isOpen, sessionToken, fiatCurrency]); useEffect(() => { @@ -148,19 +151,25 @@ export function CreateOfferModal({ isOpen, onClose, onOfferCreated }: CreateOffe className="w-full bg-muted rounded-xl px-3 py-2.5 text-sm text-foreground border border-border" > {TOKENS.map((tk) => ( - + ))}
- +
@@ -188,7 +197,9 @@ export function CreateOfferModal({ isOpen, onClose, onOfferCreated }: CreateOffe {/* Fiat Amount */}
- + {pricePerUnit > 0 && (

- {t('p2p.pricePerUnit')}: {pricePerUnit.toLocaleString(undefined, { maximumFractionDigits: 2 })} {fiatCurrency}/{token} + {t('p2p.pricePerUnit')}:{' '} + {pricePerUnit.toLocaleString(undefined, { maximumFractionDigits: 2 })}{' '} + {fiatCurrency}/{token}

)}
{/* Payment Method */}
- +
{/* Payment Details */}
- +