ios_app/Shared/Views/Tab/HomeTab.swift
2025-07-25 01:58:34 +03:00

53 lines
1.4 KiB
Swift

import SwiftUI
struct HomeTab: View {
@State private var posts: [Post] = []
@State private var isLoading = true
@State private var isRefreshing = false
var onScroll: ((CGPoint) -> Void)?
var body: some View {
VStack {
if isLoading {
ProgressView("Загрузка ленты...")
} else {
RefreshableScrollView(
isRefreshing: $isRefreshing,
onRefresh: { fetchData() },
onScroll: onScroll
) {
LazyVStack(spacing: 24) {
ForEach(posts) { post in
PostDetailView(post: post)
}
}
}
}
}
.onAppear {
if posts.isEmpty {
fetchData(isInitialLoad: true)
}
}
}
private func fetchData(isInitialLoad: Bool = false) {
if isInitialLoad {
isLoading = true
} else {
isRefreshing = true
}
PostService.shared.fetchAllPosts { fetchedPosts in
self.posts = fetchedPosts
if isInitialLoad {
print("content updated")
self.isLoading = false
}
self.isRefreshing = false
}
}
}