zdl
|
3a5c1b9d9c
|
refactor: 优化路由别名,统一路由规范
- 删除 /concept 别名路由,统一使用 /concepts
- 删除 /stock-overview 别名路由 (死代码,从未使用)
- 修改 StockOverview 中的链接: /concept → /concepts
优化收益:
- 路由配置从 18 个减少到 16 个
- 每个页面只有一个标准路径,避免混淆
- 统一使用复数形式 (concepts, stocks)
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-30 14:43:39 +08:00 |
|
zdl
|
441fba7e5a
|
refactor: 重构 App.js 使用声明式路由配置
- 移除 140+ 行路由定义 JSX,改用 AppRoutes 组件
- 移除 10 个懒加载组件声明 (已迁移到 routes/lazy-components.js)
- 移除 ProtectedRoute/ProtectedRouteRedirect 导入 (路由系统内部处理)
- 简化 AppContent 组件,只保留核心逻辑
效果:
- App.js 从 330 行减少到 165 行 (-50%)
- 代码职责更清晰,易于维护
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-30 14:42:54 +08:00 |
|
zdl
|
4130498b8e
|
refactor: 重构 App.js 使用声明式路由配置
- 移除 140+ 行路由定义 JSX,改用 AppRoutes 组件
- 移除 10 个懒加载组件声明 (已迁移到 routes/lazy-components.js)
- 移除 ProtectedRoute/ProtectedRouteRedirect 导入 (路由系统内部处理)
- 简化 AppContent 组件,只保留核心逻辑
效果:
- App.js 从 330 行减少到 165 行 (-50%)
- 代码职责更清晰,易于维护
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-30 14:42:54 +08:00 |
|
zdl
|
0015231333
|
feat: 创建声明式路由配置系统'
|
2025-10-30 14:37:20 +08:00 |
|
zdl
|
b29c37149a
|
feat: 创建声明式路由配置系统'
|
2025-10-30 14:37:20 +08:00 |
|
zdl
|
ff573e4eef
|
feat: 将 AuthModalProvider 迁移到 Redux
## 主要改动
### 新增
- 创建 `store/slices/authModalSlice.js` - Redux Slice 管理认证弹窗状态
- 创建 `hooks/useAuthModal.js` - 自定义 Hook,组合 Redux 状态和业务逻辑
### 修改
- 更新 `store/index.js` - 添加 authModal reducer
- 更新 `App.js` - 移除 AuthModalProvider 包裹层
- 更新 5 个组件的 import 路径:
- AuthFormContent.js
- AuthModalManager.js
- WechatRegister.js
- HomeNavbar.js
- ProtectedRoute.js
### 删除
- 删除 `contexts/AuthModalContext.js` - 旧的 Context 实现
## 迁移效果
- ✅ 减少 Provider 嵌套层级(4层 → 3层)
- ✅ 统一状态管理架构(Redux)
- ✅ 更好的调试体验(Redux DevTools)
- ✅ 保持 API 兼容性(无破坏性修改)
## 技术细节
- 使用 `useRef` 存储 `onSuccessCallback`(函数不可序列化)
- 保持与 AuthContext 的依赖关系(AuthProvider 暂未迁移)
- 所有业务逻辑保持不变,仅改变状态管理方式
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-30 13:22:45 +08:00 |
|
zdl
|
d5881462d2
|
feat: 将 AuthModalProvider 迁移到 Redux
## 主要改动
### 新增
- 创建 `store/slices/authModalSlice.js` - Redux Slice 管理认证弹窗状态
- 创建 `hooks/useAuthModal.js` - 自定义 Hook,组合 Redux 状态和业务逻辑
### 修改
- 更新 `store/index.js` - 添加 authModal reducer
- 更新 `App.js` - 移除 AuthModalProvider 包裹层
- 更新 5 个组件的 import 路径:
- AuthFormContent.js
- AuthModalManager.js
- WechatRegister.js
- HomeNavbar.js
- ProtectedRoute.js
### 删除
- 删除 `contexts/AuthModalContext.js` - 旧的 Context 实现
## 迁移效果
- ✅ 减少 Provider 嵌套层级(4层 → 3层)
- ✅ 统一状态管理架构(Redux)
- ✅ 更好的调试体验(Redux DevTools)
- ✅ 保持 API 兼容性(无破坏性修改)
## 技术细节
- 使用 `useRef` 存储 `onSuccessCallback`(函数不可序列化)
- 保持与 AuthContext 的依赖关系(AuthProvider 暂未迁移)
- 所有业务逻辑保持不变,仅改变状态管理方式
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
|
2025-10-30 13:22:45 +08:00 |
|
zdl
|
795e404fdd
|
fix: 修复导航栏 Max 会员订阅信息显示问题
- 修复 HomeNavbar 中 useEffect 执行顺序导致订阅信息不加载的问题
- 移除 ref 检查逻辑,改为直接根据登录状态加载订阅信息
- 增强订阅相关的调试日志输出(getCurrentUser, API handler, HomeNavbar)
- 优化用户数据获取的日志格式,便于问题排查
|
2025-10-30 13:09:41 +08:00 |
|
zdl
|
3acc00ac8d
|
fix: 修复导航栏 Max 会员订阅信息显示问题
- 修复 HomeNavbar 中 useEffect 执行顺序导致订阅信息不加载的问题
- 移除 ref 检查逻辑,改为直接根据登录状态加载订阅信息
- 增强订阅相关的调试日志输出(getCurrentUser, API handler, HomeNavbar)
- 优化用户数据获取的日志格式,便于问题排查
|
2025-10-30 13:09:41 +08:00 |
|
zdl
|
7bb328e4e0
|
feat: 创建第三个 Hook - useStockMonitoring.js(实时监控功能)
|
2025-10-30 13:06:48 +08:00 |
|
zdl
|
1d5efd88b2
|
feat: 创建第三个 Hook - useStockMonitoring.js(实时监控功能)
|
2025-10-30 13:06:48 +08:00 |
|
zdl
|
a1288f52dc
|
feat: 提交 Custom Hooks
|
2025-10-30 13:04:42 +08:00 |
|
zdl
|
19a8866305
|
feat: 提交 Custom Hooks
|
2025-10-30 13:04:42 +08:00 |
|
zdl
|
b6e9ea40d1
|
feat: 提交 Redux Slice
|
2025-10-30 13:03:31 +08:00 |
|
zdl
|
3472d267af
|
feat: 提交 Redux Slice
|
2025-10-30 13:03:31 +08:00 |
|
zdl
|
35adabb87e
|
feat: 将 IndustryProvider (176行) 完整迁移到 Redux
|
2025-10-30 12:54:32 +08:00 |
|
zdl
|
c77061f36d
|
feat: 将 IndustryProvider (176行) 完整迁移到 Redux
|
2025-10-30 12:54:32 +08:00 |
|
zdl
|
9335ef5f8c
|
feat: 修复 EventList.js 缺少 Tooltip 导入的错误
|
2025-10-30 12:24:12 +08:00 |
|
zdl
|
a9e30d4eb9
|
feat: 修复 EventList.js 缺少 Tooltip 导入的错误
|
2025-10-30 12:24:12 +08:00 |
|
zdl
|
b825fa044d
|
docs: 添加 EventList.js 重构文档
|
2025-10-30 12:19:37 +08:00 |
|
zdl
|
fb1f5e10db
|
docs: 添加 EventList.js 重构文档
|
2025-10-30 12:19:37 +08:00 |
|
zdl
|
0991abb186
|
feat: 重构主组件
│ │
│ │ - ❌ 移除 renderPriceChange 函数(60行) │ │
│ │ - ❌ 移除 renderCompactEvent 函数(200行) │ │
│ │ - ❌ 移除 renderDetailedEvent 函数(300行) │ │
│ │ - ❌ 移除 expandedDescriptions state │ │
│ │ - ❌ 精简 Chakra UI 导入 │ │
│ │ - ✅ 使用 EventCard 组件统一渲染 │ │
│ │ - ✅ 保留所有业务逻辑(WebSocket、通知、关注)
|
2025-10-30 12:15:55 +08:00 |
|
zdl
|
4a0194e26c
|
feat: 重构主组件
│ │
│ │ - ❌ 移除 renderPriceChange 函数(60行) │ │
│ │ - ❌ 移除 renderCompactEvent 函数(200行) │ │
│ │ - ❌ 移除 renderDetailedEvent 函数(300行) │ │
│ │ - ❌ 移除 expandedDescriptions state │ │
│ │ - ❌ 精简 Chakra UI 导入 │ │
│ │ - ✅ 使用 EventCard 组件统一渲染 │ │
│ │ - ✅ 保留所有业务逻辑(WebSocket、通知、关注)
|
2025-10-30 12:15:55 +08:00 |
|
zdl
|
b6c1b44855
|
feat: 创建组合组件(Molecules)
- EventHeader: 标题头部组件(100行) │ │
│ │ - CompactEventCard: 紧凑模式卡片(160行) │ │
│ │ - DetailedEventCard: 详细模式卡片(170行) │ │
│ │ - index.js: EventCard 统一入口(60行)
|
2025-10-30 12:15:03 +08:00 |
|
zdl
|
ff9f1fe2a1
|
feat: 创建组合组件(Molecules)
- EventHeader: 标题头部组件(100行) │ │
│ │ - CompactEventCard: 紧凑模式卡片(160行) │ │
│ │ - DetailedEventCard: 详细模式卡片(170行) │ │
│ │ - index.js: EventCard 统一入口(60行)
|
2025-10-30 12:15:03 +08:00 |
|
zdl
|
d2c8c4689b
|
feat: 创建原子组件(Atoms) - EventTimeline: 时间轴显示(60行) │ │
│ │ - EventImportanceBadge: 重要性等级标签(100行) │ │
│ │ - EventStats: 统计信息组件(60行) │ │
│ │ - EventFollowButton: 关注按钮(40行) │ │
│ │ - EventPriceDisplay: 价格变动显示(130行) │ │
│ │ - EventDescription: 描述文本组件(60行)
|
2025-10-30 12:14:27 +08:00 |
|
zdl
|
a39d57f9de
|
feat: 创建原子组件(Atoms) - EventTimeline: 时间轴显示(60行) │ │
│ │ - EventImportanceBadge: 重要性等级标签(100行) │ │
│ │ - EventStats: 统计信息组件(60行) │ │
│ │ - EventFollowButton: 关注按钮(40行) │ │
│ │ - EventPriceDisplay: 价格变动显示(130行) │ │
│ │ - EventDescription: 描述文本组件(60行)
|
2025-10-30 12:14:27 +08:00 |
|
zdl
|
2f27083eb5
|
feat: 拆分 EventList.js/提取价格相关工具函数到 utils/priceFormatters.js
|
2025-10-30 11:13:09 +08:00 |
|
zdl
|
57a7d3b9e7
|
feat: 拆分 EventList.js/提取价格相关工具函数到 utils/priceFormatters.js
|
2025-10-30 11:13:09 +08:00 |
|
zdl
|
901b7b3db3
|
Merge branch 'feature_2025/251029_legal_notice' into feature
* feature_2025/251029_legal_notice: (32 commits)
feat: API优化
feat: mock数据添加
feat: 修改内容:添加风险提示到K线图弹窗
feat:修复mock数据
feat: 访问"概念中心"页面 2. 点击任意概念卡片进入概念详情 3. 点击"历史时间轴"按钮(需要Max会员权限) 4. 查看弹窗底部是否显示风险提示 & mock数据处理
feat: 事件中心股票详情添加风险提示
feat: 涨停分析/股票详情弹窗 添加风险提示
feat: 添加mock数据
feat: 事件中心 事件详情底部添加风险提示
feat: 添加mock数据
feat: 核心页面添加风险提示
feat: 创建风险提示通用组件
feat: bugfix
feat: 优化packge.json
feat: package.json 优化方案
feat: 任务 1: 集成 TradingSimulation 追踪事件任务 2: 传递 tradingEvents 到子组件
feat: 统一的Hook架构
feat: 集成导航上报
feat: 已完成的工作: - ✅ 创建了4个P1优先级Hook(搜索、导航、个人资料、订阅) - ✅ 将其中3个Hook集成到5个组件中 - ✅ 在个人资料、设置、搜索、订阅流程中添加了15+个追踪点 - ✅ 覆盖了完整的收入漏斗(支付发起 → 成功 → 订阅创建) - ✅ 添加了留存追踪(个人资料更新、设置修改、搜索查询)
feat: P1通用功能:4个Hook创建完成(待集成)现在您可以追踪:
...
|
2025-10-30 10:41:24 +08:00 |
|
zdl
|
cb84b0238a
|
Merge branch 'feature_2025/251029_legal_notice' into feature
* feature_2025/251029_legal_notice: (32 commits)
feat: API优化
feat: mock数据添加
feat: 修改内容:添加风险提示到K线图弹窗
feat:修复mock数据
feat: 访问"概念中心"页面 2. 点击任意概念卡片进入概念详情 3. 点击"历史时间轴"按钮(需要Max会员权限) 4. 查看弹窗底部是否显示风险提示 & mock数据处理
feat: 事件中心股票详情添加风险提示
feat: 涨停分析/股票详情弹窗 添加风险提示
feat: 添加mock数据
feat: 事件中心 事件详情底部添加风险提示
feat: 添加mock数据
feat: 核心页面添加风险提示
feat: 创建风险提示通用组件
feat: bugfix
feat: 优化packge.json
feat: package.json 优化方案
feat: 任务 1: 集成 TradingSimulation 追踪事件任务 2: 传递 tradingEvents 到子组件
feat: 统一的Hook架构
feat: 集成导航上报
feat: 已完成的工作: - ✅ 创建了4个P1优先级Hook(搜索、导航、个人资料、订阅) - ✅ 将其中3个Hook集成到5个组件中 - ✅ 在个人资料、设置、搜索、订阅流程中添加了15+个追踪点 - ✅ 覆盖了完整的收入漏斗(支付发起 → 成功 → 订阅创建) - ✅ 添加了留存追踪(个人资料更新、设置修改、搜索查询)
feat: P1通用功能:4个Hook创建完成(待集成)现在您可以追踪:
...
|
2025-10-30 10:41:24 +08:00 |
|
zdl
|
7538a43744
|
feat: API优化
|
2025-10-29 19:49:20 +08:00 |
|
zdl
|
433fc4a0f5
|
feat: API优化
|
2025-10-29 19:49:20 +08:00 |
|
zdl
|
0c16e39f83
|
feat: mock数据添加
|
2025-10-29 19:41:05 +08:00 |
|
zdl
|
5bac525147
|
feat: mock数据添加
|
2025-10-29 19:41:05 +08:00 |
|
zdl
|
25010ac0d3
|
feat: 修改内容:添加风险提示到K线图弹窗
|
2025-10-29 19:34:33 +08:00 |
|
zdl
|
a049d0365b
|
feat: 修改内容:添加风险提示到K线图弹窗
|
2025-10-29 19:34:33 +08:00 |
|
zdl
|
46d2455c47
|
feat:修复mock数据
|
2025-10-29 19:31:13 +08:00 |
|
zdl
|
fdbb6ceff5
|
feat:修复mock数据
|
2025-10-29 19:31:13 +08:00 |
|
zdl
|
43e0a2aad7
|
feat: 访问"概念中心"页面
2. 点击任意概念卡片进入概念详情
3. 点击"历史时间轴"按钮(需要Max会员权限)
4. 查看弹窗底部是否显示风险提示 & mock数据处理
|
2025-10-29 19:18:12 +08:00 |
|
zdl
|
35f8b5195a
|
feat: 访问"概念中心"页面
2. 点击任意概念卡片进入概念详情
3. 点击"历史时间轴"按钮(需要Max会员权限)
4. 查看弹窗底部是否显示风险提示 & mock数据处理
|
2025-10-29 19:18:12 +08:00 |
|
zdl
|
cc841a8940
|
feat: 事件中心股票详情添加风险提示
|
2025-10-29 19:12:18 +08:00 |
|
zdl
|
77aafd5661
|
feat: 事件中心股票详情添加风险提示
|
2025-10-29 19:12:18 +08:00 |
|
zdl
|
40822315e1
|
feat: 涨停分析/股票详情弹窗 添加风险提示
|
2025-10-29 19:08:51 +08:00 |
|
zdl
|
ce1bf29270
|
feat: 涨停分析/股票详情弹窗 添加风险提示
|
2025-10-29 19:08:51 +08:00 |
|
zdl
|
81adf4dc5d
|
feat: 添加mock数据
|
2025-10-29 18:43:57 +08:00 |
|
zdl
|
ac7a6991bc
|
feat: 添加mock数据
|
2025-10-29 18:43:57 +08:00 |
|
zdl
|
9957547b18
|
feat: 事件中心 事件详情底部添加风险提示
|
2025-10-29 18:33:46 +08:00 |
|
zdl
|
4435ef9392
|
feat: 事件中心 事件详情底部添加风险提示
|
2025-10-29 18:33:46 +08:00 |
|
zdl
|
9a47c993e9
|
feat: 添加mock数据
|
2025-10-29 18:02:58 +08:00 |
|