feat: 更新CreateFeed功能及相关视图组件
- 在CreateFeedFeature中新增isPresented依赖,确保在适当的上下文中执行视图关闭操作。 - 在FeedFeature中优化状态管理,简化CreateFeedView的呈现逻辑。 - 新增FeedListFeature和MainFeature,整合FeedListView和底部导航功能,提升用户体验。 - 更新HomeView和SplashView以集成MainView,确保应用结构一致性。 - 在多个视图中调整状态管理和导航逻辑,增强可维护性和用户体验。
This commit is contained in:
50
yana/Features/FeedListFeature.swift
Normal file
50
yana/Features/FeedListFeature.swift
Normal file
@@ -0,0 +1,50 @@
|
||||
import Foundation
|
||||
import ComposableArchitecture
|
||||
|
||||
struct FeedListFeature: Reducer {
|
||||
struct State: Equatable {
|
||||
var feeds: [Feed] = [] // 预留 feed 内容
|
||||
var isLoading: Bool = false
|
||||
var error: String? = nil
|
||||
var isEditFeedPresented: Bool = false // 新增:控制 EditFeedView 弹窗
|
||||
}
|
||||
|
||||
enum Action: Equatable {
|
||||
case onAppear
|
||||
case reload
|
||||
case loadMore
|
||||
case editFeedButtonTapped // 新增:点击 add 按钮
|
||||
case editFeedDismissed // 新增:关闭编辑页
|
||||
// 预留后续 Action
|
||||
}
|
||||
|
||||
func reduce(into state: inout State, action: Action) -> Effect<Action> {
|
||||
switch action {
|
||||
case .onAppear:
|
||||
// 预留数据加载逻辑
|
||||
return .none
|
||||
case .reload:
|
||||
// 预留刷新逻辑
|
||||
return .none
|
||||
case .loadMore:
|
||||
// 预留分页加载逻辑
|
||||
return .none
|
||||
case .editFeedButtonTapped:
|
||||
state.isEditFeedPresented = true
|
||||
return .none
|
||||
case .editFeedDismissed:
|
||||
state.isEditFeedPresented = false
|
||||
return .none
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Feed 数据模型占位,后续可替换为真实模型
|
||||
enum Feed: Equatable, Identifiable {
|
||||
case placeholder(id: UUID = UUID())
|
||||
var id: UUID {
|
||||
switch self {
|
||||
case .placeholder(let id): return id
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user