// // MessageTableViewCellViewModel.swift // Bark // // Created by huangfeng on 2020/11/21. // Copyright © 2020 Fin. All rights reserved. // import Foundation import RxCocoa import Differentiator import RxDataSources class MessageTableViewCellViewModel: ViewModel { let message: Message let title: BehaviorRelay let body: BehaviorRelay let url: BehaviorRelay let date: BehaviorRelay let urlTap: PublishRelay init(message:Message) { self.message = message self.title = BehaviorRelay(value: message.title ?? "") self.body = BehaviorRelay(value: message.body ?? "") self.url = BehaviorRelay(value: message.url ?? "") self.date = BehaviorRelay(value: (message.createDate ?? Date()).agoFormatString()) self.urlTap = PublishRelay() super.init() } } struct MessageSection { var header: String var messages:[MessageTableViewCellViewModel] } extension MessageSection:AnimatableSectionModelType { typealias Item = MessageTableViewCellViewModel typealias Identity = String var items: [MessageTableViewCellViewModel] { return self.messages } init(original: MessageSection, items: [MessageTableViewCellViewModel]) { self = original self.messages = items } var identity: String { return header } } extension MessageTableViewCellViewModel: IdentifiableType { typealias Identity = String var identity: String{ return self.message.id } }