暂无描述

MessageViewModel.swift 1.1KB

    // // MessageViewModel.swift // PaiAi // // Created by mac on 2016/10/19. // Copyright © 2016年 FFIB. All rights reserved. // import Foundation import RxSwift import RxCocoa import RxDataSources public typealias MessageSource = MessageRepositorable & Gettable & Deletable public struct MessageViewModel<T: MessageSource> { let repository: T public init(repository: T) { self.repository = repository } public var messageContents: Observable<[AnimatableSectionModel<Int, MessageItem>]> { return repository.content.map({ model in return [AnimatableSectionModel(model: 0, items: model)] }) } public func reload() { repository.loadContent(isRefresh: true) } public func preload() { repository.loadContent(isRefresh: false) } public func remove(of index: Int) { repository.remove(of: index) } public func removeAll() { repository.removeAll() } public var hasData: Observable<Bool> { return repository.content.flatMap({ (items) in Observable.just(items.count > 0) }).share() } }