feat: 更新FeedListView和MeView以增强图片预览功能
- 在FeedListView和MeView中新增previewCurrentIndex状态,支持图片预览的当前索引管理。 - 更新ImagePreviewPager的currentIndex绑定,确保预览逻辑的正确性。 - 在FeedListContentView中添加onImageTap回调,更新previewCurrentIndex以提升用户交互体验。 - 在MainView中调整底部内边距,优化布局效果。
This commit is contained in:
@@ -171,6 +171,7 @@ struct MomentsListView: View {
|
||||
struct FeedListContentView: View {
|
||||
let store: StoreOf<FeedListFeature>
|
||||
@Binding var previewItem: PreviewItem?
|
||||
@Binding var previewCurrentIndex: Int
|
||||
|
||||
var body: some View {
|
||||
WithViewStore(self.store, observe: { $0 }) { viewStore in
|
||||
@@ -186,6 +187,7 @@ struct FeedListContentView: View {
|
||||
hasMore: viewStore.hasMore,
|
||||
isLoadingMore: viewStore.isLoadingMore,
|
||||
onImageTap: { images, tappedIndex in
|
||||
previewCurrentIndex = tappedIndex
|
||||
previewItem = PreviewItem(images: images, index: tappedIndex)
|
||||
},
|
||||
onMomentTap: { moment in
|
||||
@@ -211,6 +213,7 @@ struct FeedListView: View {
|
||||
let store: StoreOf<FeedListFeature>
|
||||
// 新增:图片预览状态
|
||||
@State private var previewItem: PreviewItem? = nil
|
||||
@State private var previewCurrentIndex: Int = 0
|
||||
|
||||
var body: some View {
|
||||
WithViewStore(self.store, observe: { $0 }) { viewStore in
|
||||
@@ -241,7 +244,8 @@ struct FeedListView: View {
|
||||
// 动态内容列表
|
||||
FeedListContentView(
|
||||
store: store,
|
||||
previewItem: $previewItem
|
||||
previewItem: $previewItem,
|
||||
previewCurrentIndex: $previewCurrentIndex
|
||||
)
|
||||
|
||||
Spacer()
|
||||
@@ -275,7 +279,7 @@ struct FeedListView: View {
|
||||
}
|
||||
// 新增:图片预览弹窗
|
||||
.fullScreenCover(item: $previewItem) { item in
|
||||
ImagePreviewPager(images: item.images, currentIndex: .constant(item.index)) {
|
||||
ImagePreviewPager(images: item.images, currentIndex: $previewCurrentIndex) {
|
||||
previewItem = nil
|
||||
}
|
||||
}
|
||||
|
@@ -101,6 +101,7 @@ struct InternalMainView: View {
|
||||
))
|
||||
}
|
||||
.frame(maxWidth: .infinity, maxHeight: .infinity, alignment: .bottom)
|
||||
.padding(.bottom, 100)
|
||||
.ignoresSafeArea(.keyboard, edges: .bottom)
|
||||
|
||||
// 添加API Loading和错误处理视图
|
||||
|
@@ -5,6 +5,7 @@ struct MeView: View {
|
||||
let store: StoreOf<MeFeature>
|
||||
// 新增:图片预览状态
|
||||
@State private var previewItem: PreviewItem? = nil
|
||||
@State private var previewCurrentIndex: Int = 0
|
||||
|
||||
var body: some View {
|
||||
WithViewStore(self.store, observe: { $0 }) { viewStore in
|
||||
@@ -55,7 +56,7 @@ struct MeView: View {
|
||||
}
|
||||
// 新增:图片预览弹窗
|
||||
.fullScreenCover(item: $previewItem) { item in
|
||||
ImagePreviewPager(images: item.images, currentIndex: .constant(item.index)) {
|
||||
ImagePreviewPager(images: item.images, currentIndex: $previewCurrentIndex) {
|
||||
previewItem = nil
|
||||
}
|
||||
}
|
||||
@@ -139,6 +140,7 @@ struct MeView: View {
|
||||
allMoments: viewStore.moments,
|
||||
currentIndex: index,
|
||||
onImageTap: { images, tappedIndex in
|
||||
previewCurrentIndex = tappedIndex
|
||||
previewItem = PreviewItem(images: images, index: tappedIndex)
|
||||
},
|
||||
onLikeTap: { _, _, _, _ in
|
||||
|
Reference in New Issue
Block a user