2020-09-23 01:00:56 +00:00
|
|
|
// Copyright © 2020 Metabolist. All rights reserved.
|
|
|
|
|
|
|
|
import Combine
|
|
|
|
import Foundation
|
|
|
|
|
|
|
|
public protocol CollectionViewModel {
|
2020-10-05 06:36:22 +00:00
|
|
|
var sections: AnyPublisher<[[CollectionItemIdentifier]], Never> { get }
|
2020-09-23 01:43:06 +00:00
|
|
|
var title: AnyPublisher<String?, Never> { get }
|
2020-09-23 01:00:56 +00:00
|
|
|
var alertItems: AnyPublisher<AlertItem, Never> { get }
|
|
|
|
var loading: AnyPublisher<Bool, Never> { get }
|
|
|
|
var navigationEvents: AnyPublisher<NavigationEvent, Never> { get }
|
2020-09-24 01:33:13 +00:00
|
|
|
var nextPageMaxID: String? { get }
|
2020-10-02 03:19:14 +00:00
|
|
|
var maintainScrollPositionOfItem: CollectionItemIdentifier? { get }
|
2020-09-23 01:00:56 +00:00
|
|
|
func request(maxID: String?, minID: String?)
|
2020-10-05 06:36:22 +00:00
|
|
|
func select(identifier: CollectionItemIdentifier)
|
|
|
|
func canSelect(identifier: CollectionItemIdentifier) -> Bool
|
|
|
|
func viewModel(identifier: CollectionItemIdentifier) -> CollectionItemViewModel?
|
2020-09-23 01:00:56 +00:00
|
|
|
}
|