ios_app/Shared/ViewModels/NewHomeTabViewModel.swift
2025-08-13 03:11:49 +03:00

33 lines
833 B
Swift

import Foundation
import Combine
class NewHomeTabViewModel: ObservableObject {
@Published var posts: [Post] = []
@Published var isLoading = true
@Published var isRefreshing = false
private var hasLoadedData = false
func fetchDataIfNeeded() {
guard !hasLoadedData else { return }
refreshData()
}
func refreshData() {
DispatchQueue.main.async {
self.isRefreshing = true
}
PostService.shared.fetchAllPosts { [weak self] fetchedPosts in
guard let self = self else { return }
DispatchQueue.main.async {
self.posts = fetchedPosts
self.isLoading = false
self.hasLoadedData = true
self.isRefreshing = false
}
}
}
}