UnifiedCouponsViewController.swift 4.26 KB
//
//  UnifiedCouponsViewController.swift
//  SwiftWarplyFramework
//
//  Created by Manos Chorianopoulos on 20/10/23.
//

import Foundation
import UIKit
import SwiftEventBus

@objc public class UnifiedCouponsViewController: UIViewController {
    @IBOutlet weak var backgroundImage: UIImageView!
    @IBOutlet weak var tableView: UITableView!
    @IBOutlet weak var emptyView: UIView!
    @IBOutlet weak var emptyViewHeight: NSLayoutConstraint!
    @IBOutlet weak var emptyLabel: UILabel!
    
    public var unifiedCoupons:Array<swiftApi.UnifiedCouponModel> = []

    public override func viewDidLoad() {
        super.viewDidLoad()
        
        self.hidesBottomBarWhenPushed = true

        SwiftEventBus.onBackgroundThread(self, name: "unified_coupons_fetched") { result in

            DispatchQueue.main.async {
                self.unifiedCoupons = swiftApi().getUnifiedCouponList()
                self.tableView.reloadData()
                
                if (self.unifiedCoupons.count == 0) {
                    self.emptyView.isHidden = false
                    self.emptyViewHeight.constant = self.emptyView.intrinsicContentSize.height
                } else {
                    self.emptyView.isHidden = true
                    self.emptyViewHeight.constant = 0
                }
            }
        }
        
        setBackButton()
        setNavigationTitle("SUPERMARKET DEALS")
        
//        backgroundImage.image = UIImage(named: "coupons_scrollview_dark", in: MyEmptyClass.resourceBundle(), compatibleWith: nil)
        
        tableView.delegate = self
        tableView.dataSource = self
        
//        tableView.clipsToBounds = true
//        tableView.layer.cornerRadius = 30
//        tableView.layer.maskedCorners = [ .layerMinXMinYCorner] // Top left corner radius
        tableView.contentInset.top = 30
        
        emptyLabel.text = "Αυτήν τη στιγμή δεν έχεις κάποιο ενεργό κουπόνι. Στην ενότητα FOR YOU μπορείς να βρεις κουπόνια αποκλειστικά για σένα!"
    }
    
    public override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        
        swiftApi().logTrackersEvent("screen", "ActiveUnifiedCouponsScreen")
        
        self.unifiedCoupons = swiftApi().getUnifiedCouponList()
        self.tableView.reloadData()
        
        if (self.unifiedCoupons.count == 0) {
            self.emptyView.isHidden = false
            self.emptyViewHeight.constant = self.emptyView.intrinsicContentSize.height
        } else {
            self.emptyView.isHidden = true
            self.emptyViewHeight.constant = 0
        }

        self.navigationController?.hideHairline()
    }

    // MARK: - Functions
}

// MARK: - TableView
extension UnifiedCouponsViewController: UITableViewDelegate, UITableViewDataSource{
    
    public func numberOfSections(in tableView: UITableView) -> Int {
        return 1
    }
    
    public func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return self.unifiedCoupons.count
    }
    
    public func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
        return 130.0 + 8.0
//        return UITableViewAutomaticDimension
    }
    
    public func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "UnifiedCouponsTableViewCellId", for: indexPath) as! UnifiedCouponsTableViewCell
        cell.configureCell(coupon: unifiedCoupons[indexPath.row])
        return cell
    }
    
    public func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
        let couponBarcode = unifiedCoupons[indexPath.row]._barcode
         swiftApi().logTrackersEvent("click", ("UnifiedCoupon:" + couponBarcode))

        let storyboard = UIStoryboard(name: "Main", bundle: Bundle(for: MyEmptyClass.self))
        let vc = storyboard.instantiateViewController(withIdentifier: "UnifiedCouponBarcodeViewController") as! SwiftWarplyFramework.UnifiedCouponBarcodeViewController
        vc.coupon = unifiedCoupons[indexPath.row]
        vc.isFromWallet = true
        self.navigationController?.pushViewController(vc, animated: true)
    }
    
}