import Foundation
import Combine

class NewHomeTabViewModel: ObservableObject {
    @Published var posts: [Post] = []
    @Published var isLoading = true
    
    private var hasLoadedData = false

    func fetchDataIfNeeded() {
        // Загружаем данные только если они еще не были загружены
        guard !hasLoadedData else { return }
        
        isLoading = true
        PostService.shared.fetchAllPosts { [weak self] fetchedPosts in
            // Используем weak self чтобы избежать циклов сильных ссылок
            guard let self = self else { return }
            
            // Обновляем UI в основном потоке
            DispatchQueue.main.async {
                self.posts = fetchedPosts
                self.isLoading = false
                self.hasLoadedData = true
            }
        }
    }
}
