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
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)
|
|
}
|
|
|
|
|
|
}
|