IceCubesApp/Packages/StatusKit/Sources/StatusKit/List/StatusesFetcher.swift
2024-01-06 19:27:26 +01:00

24 lines
545 B
Swift

import Combine
import Models
import Observation
import SwiftUI
public enum StatusesState {
public enum PagingState {
case hasNextPage, loadingNextPage, none
}
case loading
case display(statuses: [Status], nextPageState: StatusesState.PagingState)
case error(error: Error)
}
@MainActor
public protocol StatusesFetcher {
var statusesState: StatusesState { get }
func fetchNewestStatuses(pullToRefresh: Bool) async
func fetchNextPage() async
func statusDidAppear(status: Status)
func statusDidDisappear(status: Status)
}