ios_app/Shared/Views/Tab/HomeTab.swift
2025-07-16 07:56:47 +03:00

50 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 body: some View {
NavigationView {
VStack {
if isLoading {
ProgressView("Загрузка ленты...")
} else {
RefreshableScrollView(isRefreshing: $isRefreshing, onRefresh: {
fetchData()
}) {
LazyVStack(spacing: 24) {
ForEach(posts) { post in
PostDetailView(post: post)
}
}
}
}
}
.navigationTitle("Лента")
.onAppear {
if posts.isEmpty {
fetchData(isInitialLoad: true)
}
}
}
}
private func fetchData(isInitialLoad: Bool = false) {
if isInitialLoad {
isLoading = true
}
PostService.shared.fetchAllPosts { fetchedPosts in
self.posts = fetchedPosts
if isInitialLoad {
print("content updated")
self.isLoading = false
}
self.isRefreshing = false
}
}
}