docs: 添加手动地址模式购买按钮修复日志

This commit is contained in:
NAC Admin 2026-03-21 01:57:19 +08:00
parent 5136b590de
commit de1e816fac
1 changed files with 71 additions and 0 deletions

View File

@ -0,0 +1,71 @@
# 购买按钮修复日志 - 2026-03-20手动地址模式
## 修复时间
2026-03-20
## 问题描述
trc-ico.newassetchain.io 购买区域:用户点击"Enter address manually"输入地址并点击 Confirm 后,
购买按钮没有出现,界面无任何变化。
## 根本原因
文件: `client/src/pages/Home.tsx`
`EVMPurchasePanel` 组件中,`WalletSelector` 的 `onAddressDetected` 回调只显示了 toast 提示,
没有更新组件状态,导致 `wallet.isConnected` 仍然为 `false`,购买按钮不渲染。
```tsx
// 修复前(问题代码)
onAddressDetected={(addr) => {
toast.success(`Connected: ${addr.slice(0, 6)}...${addr.slice(-4)}`);
// ← 没有更新任何状态!
}}
```
## 修复方案
`EVMPurchasePanel` 中添加 `manualAddress` 状态:
```tsx
const [manualAddress, setManualAddress] = useState<string | null>(null);
const effectiveAddress = wallet.address || manualAddress;
const isManualMode = !wallet.isConnected && !!manualAddress;
```
修改 `onAddressDetected` 回调:
```tsx
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 响应正常