mirror of
https://github.com/laoxong/nofx.git
synced 2026-06-04 09:58:22 +08:00
c64d4ff549
* refactor(web): restructure AITradersPage into modular architecture Refactored the massive 2652-line AITradersPage.tsx into a clean, modular architecture following React best practices. **Changes:** - Decomposed 2652-line component into 12 focused modules - Introduced Zustand stores for config and modal state management - Extracted all business logic into useTraderActions custom hook (633 lines) - Created reusable section components (PageHeader, TradersGrid, etc.) - Separated complex modal logic into dedicated components - Added TraderConfig type, eliminated all any types - Fixed critical bugs in configuredExchanges logic and getState() usage **File Structure:** - Main page reduced from 2652 → 234 lines (91% reduction) - components/traders/: 7 UI components + 5 section components - stores/: tradersConfigStore, tradersModalStore - hooks/: useTraderActions (all business logic) Co-Authored-By: tinkle-community <tinklefund@gmail.com> * chore: ignore PR_DESCRIPTION.md * fix(web): restore trader dashboard navigation functionality Fixed missing navigation logic in refactored AITradersPage. The "查看" (View) button now correctly navigates to the trader dashboard. **Root Cause:** During refactoring, the `useNavigate` hook and default navigation logic were inadvertently omitted from the main page component. **Changes:** - Added `useNavigate` import from react-router-dom - Implemented `handleTraderSelect` function with fallback navigation - Restored original behavior: use `onTraderSelect` prop if provided, otherwise navigate to `/dashboard?trader=${traderId}` **Testing:** - ✅ Click "查看" button navigates to trader dashboard - ✅ Query parameter correctly passed to dashboard Co-Authored-By: tinkle-community <tinklefund@gmail.com> * fix(web): correct type definitions for trader configuration Fixed TypeScript build errors by using the correct `TraderConfigData` type instead of the incorrect `TraderConfig` type. **Root Cause:** During refactoring, a new `TraderConfig` type was incorrectly created that extended `CreateTraderRequest` (with fields like `name`, `ai_model_id`). However, the `TraderConfigModal` component and API responses actually use `TraderConfigData` (with fields like `trader_name`, `ai_model`). **Changes:** - Replaced all `TraderConfig` references with `TraderConfigData`: - stores/tradersModalStore.ts - hooks/useTraderActions.ts - lib/api.ts - Removed incorrect `TraderConfig` type definition from types.ts - Added null check for `editingTrader.trader_id` to satisfy TypeScript **Build Status:** - ✅ TypeScript compilation: PASS - ✅ Vite production build: PASS Co-Authored-By: tinkle-community <tinklefund@gmail.com> --------- Co-authored-by: tinkle-community <tinklefund@gmail.com>
126 lines
1.2 KiB
Plaintext
126 lines
1.2 KiB
Plaintext
# IDE 配置文件
|
|
.idea/
|
|
*.iml
|
|
*.xml
|
|
|
|
# AI 工具
|
|
.claude/
|
|
CLAUDE.md
|
|
|
|
# 编译产物
|
|
nofx-auto
|
|
*.exe
|
|
nofx
|
|
nofx_test
|
|
|
|
# Go 相关
|
|
*.test
|
|
*.out
|
|
|
|
# 操作系统
|
|
.DS_Store
|
|
Thumbs.db
|
|
|
|
# 临时文件
|
|
*.log
|
|
*.tmp
|
|
*.bak
|
|
*.backup
|
|
|
|
# 环境变量
|
|
.env
|
|
config.json
|
|
config.db*
|
|
nofx.db
|
|
configbak.json
|
|
|
|
# 决策日志
|
|
decision_logs/
|
|
coin_pool_cache/
|
|
nofx_test
|
|
|
|
# Node.js
|
|
web/node_modules/
|
|
node_modules/
|
|
web/dist/
|
|
web/.vite/
|
|
|
|
# ESLint 临时报告文件(调试时生成,不纳入版本控制)
|
|
eslint-*.json
|
|
|
|
# VS code
|
|
.vscode
|
|
|
|
# 密钥和敏感文件
|
|
# 注意:crypto目录包含加密服务代码,应该被提交
|
|
# 只忽略密钥文件本身
|
|
secrets/
|
|
*.key
|
|
*.pem
|
|
*.p12
|
|
*.pfx
|
|
rsa_key*
|
|
|
|
# 加密相关
|
|
DATA_ENCRYPTION_KEY=*
|
|
*.enc
|
|
|
|
# Python
|
|
__pycache__/
|
|
*.py[cod]
|
|
*$py.class
|
|
*.so
|
|
.Python
|
|
build/
|
|
develop-eggs/
|
|
dist/
|
|
downloads/
|
|
eggs/
|
|
.eggs/
|
|
lib/
|
|
lib64/
|
|
parts/
|
|
sdist/
|
|
var/
|
|
wheels/
|
|
pip-wheel-metadata/
|
|
share/python-wheels/
|
|
*.egg-info/
|
|
.installed.cfg
|
|
*.egg
|
|
MANIFEST
|
|
|
|
# Python 虚拟环境
|
|
.venv/
|
|
venv/
|
|
ENV/
|
|
env/
|
|
.env/
|
|
|
|
# uv
|
|
.uv/
|
|
uv.lock
|
|
|
|
# Pytest
|
|
.pytest_cache/
|
|
.coverage
|
|
htmlcov/
|
|
*.cover
|
|
.hypothesis/
|
|
|
|
# Jupyter Notebook
|
|
.ipynb_checkpoints
|
|
*.ipynb
|
|
|
|
# pyenv
|
|
.python-version
|
|
|
|
# mypy
|
|
.mypy_cache/
|
|
.dmypy.json
|
|
dmypy.json
|
|
|
|
# Pyre type checker
|
|
.pyre/
|
|
PR_DESCRIPTION.md
|