|
//
// 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 struct MessageViewModel {
let messageModel: MessageModel
public init(type: MessageType) {
self.messageModel = MessageModel(type: type)
}
public var messageContents: Observable<[AnimatableSectionModel<Int, MessageItem>]> {
return messageModel.items.distinctUntilChanged().map({ model in
return [AnimatableSectionModel(model: 0, items: model)]
})
}
public func reload(isRefresh: Bool) {
messageModel.loadContents(isRefresh: isRefresh)
}
public func preload(indexPath: IndexPath?) {
guard let indexPath = indexPath,
indexPath.row == messageModel.items.value.count - 5 else {
return
}
messageModel.loadContents(isRefresh: false)
}
public func remove(_ item: MessageItem) {
messageModel.remove(item)
}
public func removeAll() {
messageModel.removeAll {
}
}
public var hasData: Observable<Bool> {
return messageModel.items.map { $0.count != 0 }
}
}
|