nac-presale/CHANGELOG_20260320_manual_a...

2.2 KiB
Raw Permalink Blame History

购买按钮修复日志 - 2026-03-20手动地址模式

修复时间

2026-03-20

问题描述

trc-ico.newassetchain.io 购买区域:用户点击"Enter address manually"输入地址并点击 Confirm 后, 购买按钮没有出现,界面无任何变化。

根本原因

文件: client/src/pages/Home.tsx EVMPurchasePanel 组件中,WalletSelectoronAddressDetected 回调只显示了 toast 提示, 没有更新组件状态,导致 wallet.isConnected 仍然为 false,购买按钮不渲染。

// 修复前(问题代码)
onAddressDetected={(addr) => {
  toast.success(`Connected: ${addr.slice(0, 6)}...${addr.slice(-4)}`);
  // ← 没有更新任何状态!
}}

修复方案

EVMPurchasePanel 中添加 manualAddress 状态:

const [manualAddress, setManualAddress] = useState<string | null>(null);
const effectiveAddress = wallet.address || manualAddress;
const isManualMode = !wallet.isConnected && !!manualAddress;

修改 onAddressDetected 回调:

onAddressDetected={(addr) => {
  setManualAddress(addr);  // ← 保存手动输入的地址
  toast.success(`Address confirmed: ${addr.slice(0, 6)}...${addr.slice(-4)}`);
}}

修改条件渲染:

  • !wallet.isConnected && !manualAddress → 显示 WalletSelector
  • isManualMode → 显示购买按钮(提示需要连接钱包完成链上交易)
  • wallet.isConnected → 显示正常购买按钮

构建信息

  • 构建时间: 2026-03-20
  • 新 bundle: index-By9gUhW4.js (815.67 kB)
  • 构建耗时: 7.18s
  • 1858 modules transformed

部署步骤

  1. 修改 client/src/pages/Home.tsx
  2. 执行 pnpm run build
  3. 删除 dist/public/manus 目录
  4. PM2 重启: pm2 restart nac-presale-test
  5. 验证: HTTP 200 响应

备份文件

  • Home.tsx 备份: client/src/pages/Home.tsx.bak.manual_addr_fix_20260320
  • dist 备份: dist/public.bak.manual_addr_fix_20260320

Git 提交

  • commit hash: 5136b59
  • 提交信息: fix: 修复手动输入地址后购买按钮不显示的问题
  • 推送到: nacadmin/nac-presale master

验证结果

  • 用户输入地址 0x1234...7890 并点击 Confirm
  • 购买按钮出现:"Connect Wallet to Buy 5.00K XIC"
  • 地址信息栏显示手动地址(琥珀色样式)
  • HTTP 200 响应正常