6.2 KiB
1.30dazhi合并前 · 完结页相关变更清单(禁止应用)
说明:根据 git 拉取的 1.30dazhi合并前 分支与 commit f725f31 核对:除完结页外,其他页面是否有被影响。
结论:仅做审查与清单整理,绝对禁止应用任何代码。
一、当前分支与提交
- 当前分支:
1.30dazhi合并前 - 完结页相关提交:
f725f31—feat: 完成页逻辑与占位页进入、无完成按钮;课程完成导航与文档 - 工作区:有 1 个未提交修改 —
ios/WildGrowth/WildGrowth/VerticalScreenPlayerView.swift(约 41 行变更)
二、f725f31 中「除完结页外」被改动的文件(其他页面)
在 f725f31 里,除了 新增的 CompletionView.swift 和文档、以及 VerticalScreenPlayerView.swift 的完成页逻辑外,以下页面/文件也被一起改动了:
1. CourseNavigation.swift
| 变更 | 说明 |
|---|---|
.player |
由 (courseId, nodeId) 改为 (courseId, nodeId, isLastNode, courseTitle) |
新增 .completion |
(courseId, courseTitle, completedLessonCount) |
| 注释 | 「从 HomeView 提取」改为「供 DiscoveryView / GrowthView / MapView / ProfileView 共用」 |
影响:所有使用 CourseNavigation.player / .completion 的调用方必须传新参数或处理新 case。
2. MainTabView.swift
| 变更 | 说明 |
|---|---|
| Tab 选中状态 | 由 @State private var selection 改为使用 navStore.selectedTab |
新增 NavigationStore |
@Published var selectedTab、func switchToGrowthTab() |
| TabView 绑定 | TabView(selection: $selection) → TabView(selection: $navStore.selectedTab) |
| 登录成功跳转 | selection = 2 → navStore.selectedTab = 2 |
| 多处 print | selection → navStore.selectedTab |
影响:Tab 切换与完成页「回到技能页」依赖 navStore.selectedTab 与 switchToGrowthTab()。
3. MapView.swift
| 变更 | 说明 |
|---|---|
| 点击小节进入播放器 | CourseNavigation.player(courseId, nodeId) → CourseNavigation.player(courseId, nodeId, isLastNode, courseTitle) |
新增 isLastNode |
(chapter.id == data.chapters.last?.id) && (index == chapter.nodes.count - 1) |
传入 courseTitle |
data.courseTitle |
影响:从地图进播放器时,会多传 isLastNode、courseTitle,与 CourseNavigation 新签名一致。
4. ProfileView.swift
| 变更 | 说明 |
|---|---|
.map |
MapView(courseId:) → MapView(courseId:, navigationPath: $navStore.profilePath) |
.player |
VerticalScreenPlayerView 增加 navigationPath: $navStore.profilePath、isLastNode、courseTitle |
新增 .completion |
CompletionView(courseId, courseTitle, completedLessonCount) |
影响:我的 Tab 下地图、播放器、完成页的导航与传参全部按新枚举和完成页流程改过。
5. DiscoveryView.swift
| 变更 | 说明 |
|---|---|
.map |
MapView(courseId:) → MapView(courseId:, navigationPath: $navStore.homePath) |
.player |
VerticalScreenPlayerView 增加 isLastNode、courseTitle(原已有 navigationPath) |
新增 .completion |
CompletionView(courseId, courseTitle, completedLessonCount) |
影响:发现 Tab 下地图、播放器、完成页的导航与传参全部按新枚举和完成页流程改过。
6. GrowthView.swift
| 变更 | 说明 |
|---|---|
.player |
VerticalScreenPlayerView 增加 isLastNode、courseTitle(原已有 MapView navigationPath) |
新增 .completion |
CompletionView(courseId, courseTitle, completedLessonCount) |
影响:技能 Tab 下播放器、完成页的导航与传参全部按新枚举和完成页流程改过。
7. VerticalScreenPlayerView.swift(f725f31 内)
| 变更 | 说明 |
|---|---|
| 占位页 | CompletionPlaceholderPage 由「带 courseId/courseTitle/navigationPath + onAppear 里 push」改为「纯视觉占位」 |
| 新增 | TabView 上 .onChange(of: currentNodeId),当 newId == "wg://completion" 时 0.1s 后 append .completion |
影响:完成页进入方式从「占位页 onAppear」改为「父视图 onChange」,避免预加载误触。
三、当前工作区未提交改动(仅 1 个文件)
| 文件 | 变更概要 |
|---|---|
| VerticalScreenPlayerView.swift | 在 f725f31 基础上:CompletionPlaceholderPage 去掉参数、改为纯 ZStack;TabView 增加 .onChange(of: currentNodeId) 的完成页 push 逻辑(与上面「f725f31 内」描述一致,可能是同一逻辑的又一次提交前微调或重复修改) |
其他页面:当前 无 未提交修改。GrowthView、ProfileView、DiscoveryView、MapView、MainTabView、CourseNavigation 等在工作区均为已提交状态(f725f31)。
四、直接回答「除了完结页,其他页面有没有被影响」
有。
在引入完结页的 f725f31 中,除了:
- 新增:
CompletionView.swift、COMPLETION_PAGE_MEANING.md、COMPLETION_VIEW_*等文档 - 修改:
VerticalScreenPlayerView.swift(占位页 + 完成页进入逻辑)
还一并修改了以下「其他页面」以支持完成页导航与播放器参数:
- CourseNavigation.swift — 枚举增加
.completion、.player增加isLastNode、courseTitle - MainTabView.swift — Tab 状态迁到
navStore.selectedTab,新增switchToGrowthTab() - MapView.swift — 进播放器时传
isLastNode、courseTitle - ProfileView.swift — MapView 传 navigationPath;播放器传 isLastNode、courseTitle;增加
.completiondestination - DiscoveryView.swift — MapView 传 navigationPath;播放器传 isLastNode、courseTitle;增加
.completiondestination - GrowthView.swift — 播放器传 isLastNode、courseTitle;增加
.completiondestination
因此:1.30dazhi合并前 分支上,完结页不是「只动完结页」,而是和上述 6 个文件一起在 f725f31 里改的;当前工作区里,只有 VerticalScreenPlayerView.swift 还有未提交修改,其他页面没有新的未提交变更。
未对仓库进行任何应用或修改操作。