// // LibraryEarlyAccessTableViewCell.swift // WolneLektury // // Created by Pawel Dabrowski on 18/06/2018. // Copyright © 2018 Fundacja Nowoczesna Polska. All rights reserved. // import UIKit import Kingfisher protocol LibraryEarlyAccessTableViewCellDelegate: class { func libraryEarlyAccessTableViewCellRefreshButtonTapped() } class LibraryEarlyAccessTableViewCell: WLTableViewCell { var delegate: LibraryEarlyAccessTableViewCellDelegate? class func instance() -> LibraryEarlyAccessTableViewCell{ let cell = LibraryEarlyAccessTableViewCell.instance(type: LibraryEarlyAccessTableViewCell.self) return cell } @IBOutlet weak var containerView: UIView! @IBOutlet weak var bookDescriptionView: BookDescriptionView! @IBOutlet weak var miniatureImageView: UIImageView! @IBOutlet weak var miniatureOverlayView: BookImageOverlayView! @IBOutlet weak var miniatureBgView: UIView! @IBOutlet weak var refreshButton: ActivityIndicatorButton! var book: BookModel? @IBOutlet weak var noPremiumBookLabel: UILabel! private var height: CGFloat = 199 override func awakeFromNib() { super.awakeFromNib() miniatureBgView.layer.cornerRadius = 5 noPremiumBookLabel.text = "library_empty_header".localized } func setup(state: ActivityIndicatorButtonState, bookModel: BookModel?) { self.book = bookModel noPremiumBookLabel.isHidden = true containerView.isHidden = true refreshButton.setIndicatorButtonState(state: state) height = 199 switch state{ case .hidden: if let book = self.book { containerView.isHidden = false bookDescriptionView.setup(bookModel: book, isPremium: true) miniatureOverlayView.setup(bookModel: book) miniatureImageView.kf.cancelDownloadTask() miniatureImageView.image = #imageLiteral(resourceName: "list_nocover") if let url = book.getCoverThumbUrl() { miniatureImageView.kf.setImage(with: ImageResource(downloadURL: url), placeholder: #imageLiteral(resourceName: "list_nocover"), options: [.transition(.fade(1))], progressBlock: nil, completionHandler: { (image, error, cacheType, url) in }) } } else { noPremiumBookLabel.isHidden = false height = 100 } case .button, .loading: break } } @IBAction func refreshButtonAction(_ sender: Any) { delegate?.libraryEarlyAccessTableViewCellRefreshButtonTapped() } override func getHeight() -> CGFloat { return height } }