Skip to content

Commit 26c067b

Browse files
graycreateclaude
andcommitted
chore: remove mock data implementation for production PR merge
- Removed mockData() extension from FeedInfo.swift - Removed LoadMockData action and handler from FeedReducer.swift - Removed mock data loading logic and debug banner from FeedPage.swift - Mock data for ExploreInfo was already removed by linter 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
1 parent b50e116 commit 26c067b

File tree

3 files changed

+1
-132
lines changed

3 files changed

+1
-132
lines changed

V2er/State/DataFlow/Model/FeedInfo.swift

Lines changed: 0 additions & 99 deletions
Original file line numberDiff line numberDiff line change
@@ -139,102 +139,3 @@ struct FeedInfo: BaseModel {
139139
}
140140

141141
}
142-
143-
// MARK: - Mock Data for UI Testing
144-
extension FeedInfo {
145-
static func mockData() -> FeedInfo {
146-
var feedInfo = FeedInfo()
147-
feedInfo.items = [
148-
Item(id: "mock1",
149-
title: "深色模式下的文字对比度优化讨论",
150-
avatar: "https://cdn.v2ex.com/avatar/2c60/19e1/1_mini.png",
151-
userName: "testuser1",
152-
replyUpdate: "12分钟前",
153-
nodeName: "分享创造",
154-
nodeId: "create",
155-
replyNum: "42"),
156-
157-
Item(id: "mock2",
158-
title: "SwiftUI 中实现自适应颜色系统的最佳实践,如何在保证视觉美观的同时确保可访问性",
159-
avatar: "https://cdn.v2ex.com/avatar/c4ca/4238/2_mini.png",
160-
userName: "swiftdev",
161-
replyUpdate: "25分钟前 designer 回复了",
162-
nodeName: "程序员",
163-
nodeId: "programmer",
164-
replyNum: "128"),
165-
166-
Item(id: "mock3",
167-
title: "iOS 15 新特性:Dynamic Color 深度解析",
168-
avatar: "https://cdn.v2ex.com/avatar/9b1b/00d4/3_mini.png",
169-
userName: "iosdev",
170-
replyUpdate: "1小时前",
171-
nodeName: "iPhone",
172-
nodeId: "iphone",
173-
replyNum: "15"),
174-
175-
Item(id: "mock4",
176-
title: "关于 V2EX 客户端的一些改进建议",
177-
avatar: "https://cdn.v2ex.com/avatar/e3db/1115/4_mini.png",
178-
userName: "feedback",
179-
replyUpdate: "2小时前",
180-
nodeName: "反馈",
181-
nodeId: "feedback",
182-
replyNum: "8"),
183-
184-
Item(id: "mock5",
185-
title: "使用 Color.dynamic 实现深浅模式自动切换,支持 iOS 15+ 的高对比度模式",
186-
avatar: "https://cdn.v2ex.com/avatar/fa5e/4216/5_mini.png",
187-
userName: "uiexpert",
188-
replyUpdate: "3小时前 learner 回复了",
189-
nodeName: "设计",
190-
nodeId: "design",
191-
replyNum: "67"),
192-
193-
Item(id: "mock6",
194-
title: "征集:你觉得哪些 App 的深色模式做得最好?",
195-
avatar: "https://cdn.v2ex.com/avatar/1b2c/3317/6_mini.png",
196-
userName: "survey",
197-
replyUpdate: "5小时前",
198-
nodeName: "问与答",
199-
nodeId: "qna",
200-
replyNum: "234"),
201-
202-
Item(id: "mock7",
203-
title: "Text 和 Background 颜色搭配的无障碍设计原则",
204-
avatar: "https://cdn.v2ex.com/avatar/7d8e/4418/7_mini.png",
205-
userName: "a11y",
206-
replyUpdate: "6小时前",
207-
nodeName: "分享发现",
208-
nodeId: "share",
209-
replyNum: "19"),
210-
211-
Item(id: "mock8",
212-
title: "Swift Package Manager 管理颜色资源的技巧分享,如何构建跨项目的设计系统",
213-
avatar: "https://cdn.v2ex.com/avatar/8e9f/5519/8_mini.png",
214-
userName: "swiftpm",
215-
replyUpdate: "8小时前 packager 回复了",
216-
nodeName: "macOS",
217-
nodeId: "macos",
218-
replyNum: "45"),
219-
220-
Item(id: "mock9",
221-
title: "讨论:App Store 应该强制要求应用支持深色模式吗?",
222-
avatar: "https://cdn.v2ex.com/avatar/9fa0/6620/9_mini.png",
223-
userName: "appstore",
224-
replyUpdate: "10小时前",
225-
nodeName: "Apple",
226-
nodeId: "apple",
227-
replyNum: "156"),
228-
229-
Item(id: "mock10",
230-
title: "分享一个 SwiftUI Color Extension,让颜色管理更简单",
231-
avatar: "https://cdn.v2ex.com/avatar/0ab1/7721/10_mini.png",
232-
userName: "coder",
233-
replyUpdate: "12小时前",
234-
nodeName: "分享创造",
235-
nodeId: "create",
236-
replyNum: "88")
237-
]
238-
return feedInfo
239-
}
240-
}

V2er/State/DataFlow/Reducers/FeedReducer.swift

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -24,12 +24,6 @@ func feedStateReducer(_ state: FeedState, _ action: Action) -> (FeedState, Actio
2424
state.feedInfo = newsInfo ?? FeedInfo()
2525
state.willLoadPage = 1
2626
} else { }
27-
case let action as FeedActions.LoadMockData:
28-
// Load mock data for UI testing when not logged in
29-
state.feedInfo = FeedInfo.mockData()
30-
state.hasLoadedOnce = true
31-
state.showProgressView = false
32-
state.refreshing = false
3327
case let action as FeedActions.LoadMore.Start:
3428
guard !state.refreshing else { break }
3529
guard !state.loadingMore else { break }
@@ -103,9 +97,5 @@ struct FeedActions {
10397
struct ClearMsgBadge: Action {
10498
var target: Reducer = reducer
10599
}
106-
107-
struct LoadMockData: Action {
108-
var target: Reducer = reducer
109-
}
110100

111101
}

V2er/View/Feed/FeedPage.swift

Lines changed: 1 addition & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -18,12 +18,7 @@ struct FeedPage: BaseHomePageView {
1818
var isSelected: Bool {
1919
let selected = selecedTab == .feed
2020
if selected && !state.hasLoadedOnce {
21-
// Check if user is not logged in, load mock data for UI testing
22-
if !AccountState.hasSignIn() {
23-
dispatch(FeedActions.LoadMockData())
24-
} else {
25-
dispatch(FeedActions.FetchData.Start(autoLoad: true))
26-
}
21+
dispatch(FeedActions.FetchData.Start(autoLoad: true))
2722
}
2823
return selected
2924
}
@@ -39,23 +34,6 @@ struct FeedPage: BaseHomePageView {
3934
@ViewBuilder
4035
private var contentView: some View {
4136
VStack(spacing: 0) {
42-
// Show debug banner when using mock data
43-
if !AccountState.hasSignIn() && state.hasLoadedOnce {
44-
HStack {
45-
Image(systemName: "exclamationmark.triangle.fill")
46-
.foregroundColor(.orange)
47-
Text("Debug Mode: Showing mock data (not logged in)")
48-
.font(.caption)
49-
.foregroundColor(.secondaryText)
50-
}
51-
.padding(.horizontal, 12)
52-
.padding(.vertical, 8)
53-
.background(Color.dynamic(light: Color.orange.opacity(0.1), dark: Color.orange.opacity(0.2)))
54-
.cornerRadius(8)
55-
.padding(.horizontal, 12)
56-
.padding(.top, 8)
57-
}
58-
5937
LazyVStack(spacing: 0) {
6038
ForEach(state.feedInfo.items) { item in
6139
NavigationLink(destination: FeedDetailPage(initData: item)) {

0 commit comments

Comments
 (0)