mirror of
https://github.com/Dimillian/IceCubesApp.git
synced 2024-05-19 08:48:16 +00:00
d1209e6704
Co-authored-by: Jim Dovey <jimdovey@apple.com>
23 lines
525 B
Swift
23 lines
525 B
Swift
import Combine
|
|
import Models
|
|
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: ObservableObject {
|
|
var statusesState: StatusesState { get }
|
|
func fetchNewestStatuses() async
|
|
func fetchNextPage() async
|
|
func statusDidAppear(status: Status)
|
|
func statusDidDisappear(status: Status)
|
|
}
|