You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

132 lines
4.3 KiB

//
// InviteUserViewController.swift
// GME Remit
//
// Created by Armaan Shrestha on 21/08/2022.
//Copyright © 2022 Gobal Money Express Co. Ltd. All rights reserved.
//
import UIKit
class InviteUserViewController: UIViewController {
let inviteView = InviteView()
let referralView = ReferralView()
// MARK: Properties
var presenter: InviteUserModuleInterface?
// MARK: IBOutlets
@IBOutlet weak var backgroundView: UIView!
@IBOutlet weak var viewPagerContainer: UIView!
@IBOutlet weak var rewardPointTitleLabel: UILabel!
@IBOutlet weak var rewardPointLabel: UILabel!
lazy var viewPager: ViewPager = {
// 1
let viewPager = ViewPager(
tabSizeConfiguration: .fillEqually(height: 40, spacing: 0)
)
// 3
viewPager.tabbedView.tabs = [
AppTabItemView(title: "title_invite_txt".localized(), icon: ""),
AppTabItemView(title: "title_referral_text".localized(), icon: "")
]
viewPager.pagedView.pages = [
inviteView,
referralView
]
viewPager.translatesAutoresizingMaskIntoConstraints = false
return viewPager
}()
// MARK: VC's Life cycle
override func viewDidLoad() {
super.viewDidLoad()
self.setup()
self.title = "Reward Points"
}
// MARK: IBActions
// MARK: Other Functions
private func setup() {
// all setup should be done here
inviteView.copyReferalCodeAction = {
self.copyReferalCode()
}
inviteView.shareReferalCodeAction = {
self.shareCode()
}
setupView()
presenter?.fetchData()
}
func setupView() {
backgroundView.backgroundColor = .themeMixedRed
backgroundView.set(cornerRadius: 12)
viewPagerContainer.set(cornerRadius: 12)
viewPagerContainer.layer.addShadow(with: UIColor.themeText)
viewPager.set(cornerRadius: 12)
rewardPointTitleLabel.text = "rewards_points_available_text".localized()
self.view.addSubview(viewPager)
NSLayoutConstraint.activate([
viewPager.topAnchor.constraint(equalTo: self.viewPagerContainer.topAnchor),
viewPager.leadingAnchor.constraint(equalTo: self.viewPagerContainer.leadingAnchor),
viewPager.trailingAnchor.constraint(equalTo: self.viewPagerContainer.trailingAnchor),
viewPager.bottomAnchor.constraint(equalTo: self.viewPagerContainer.bottomAnchor)
])
}
func copyReferalCode() {
let referralCode = GMEDB.shared.user.string(.referralCode)
UIPasteboard.general.string = referralCode
self.showToast(message: "Code copied to Clipboard", font: .systemFont(ofSize: 12.0))
}
func shareCode() {
let referralCode = GMEDB.shared.user.string(.referralCode)
// let myWebsite = NSURL(string:"https://jmeremit.page.link/?invite=\(referralCode)")
////// let shareAll = [text , image! , myWebsite]
// let activityViewController = UIActivityViewController(activityItems: [myWebsite], applicationActivities: nil)
// activityViewController.popoverPresentationController?.sourceView = self.view
// self.present(activityViewController, animated: true, completion: nil)
if let name = URL(string: "https://jmeremit.page.link/?invite=\(referralCode!)"), !name.absoluteString.isEmpty {
let objectsToShare = [name]
let activityVC = UIActivityViewController(activityItems: objectsToShare, applicationActivities: nil)
self.present(activityVC, animated: true, completion: nil)
} else {
// show alert for not available
}
}
}
// MARK: InviteUserViewInterface
extension InviteUserViewController: InviteUserViewInterface {
func progress(isShow: Bool) {
if isShow {
self.showProgressHud()
} else {
self.hideProgressHud()
}
}
func obtained(data: ReferralModel) {
inviteView.data = data
referralView.data = data.details
rewardPointLabel.text = data.rewardMoney
}
func obtained(error: String) {
self.gmeAlert(message: error)
}
}