vds_ios_sample/VDSSample/ViewControllers/TooltipViewController.swift
Matt Bruce 8c13c6960d refactored inset logic in helpers
Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
2023-04-27 15:11:49 -05:00

116 lines
3.8 KiB
Swift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

//
// TooltipViewController.swift
// VDSSample
//
// Created by Matt Bruce on 4/13/23.
//
import Foundation
import UIKit
import VDS
import VDSColorTokens
import Combine
class TooltipViewController: BaseViewController {
var disabledSwitch = Toggle()
var titleTextField = TextField()
var contentTextField = TextField()
var closeButtonTextField = TextField()
lazy var sizePickerSelectorView = {
PickerSelectorView(title: Tooltip.Size.medium.rawValue,
picker: self.picker,
items: Tooltip.Size.allCases)
}()
lazy var fillColorPickerSelectorView = {
PickerSelectorView(title: Tooltip.FillColor.primary.rawValue,
picker: self.picker,
items: Tooltip.FillColor.allCases)
}()
var tooltip = Tooltip()
override func viewDidLoad() {
super.viewDidLoad()
addContentTopView(view: .makeWrapper(for: tooltip, edgeSpacing: 16.0), edgeSpacing: 0.0)
setupForm()
setupPicker()
setupModel()
}
override func allTextFields() -> [TextField]? { [titleTextField, contentTextField, closeButtonTextField] }
func setupForm(){
addFormRow(label: "Disabled", view: .makeWrapper(for: disabledSwitch))
addFormRow(label: "Surface", view: surfacePickerSelectorView)
addFormRow(label: "Size", view: sizePickerSelectorView)
addFormRow(label: "FillColor", view: fillColorPickerSelectorView)
addFormRow(label: "Title", view: titleTextField)
addFormRow(label: "Content", view: contentTextField)
addFormRow(label: "Close Button Text", view: closeButtonTextField)
disabledSwitch.onChange = { [weak self] sender in
self?.tooltip.disabled = sender.isOn
}
titleTextField
.textPublisher
.sink { [weak self] text in
self?.tooltip.title = text
}.store(in: &subscribers)
contentTextField
.textPublisher
.sink { [weak self] text in
self?.tooltip.content = text
}.store(in: &subscribers)
closeButtonTextField
.textPublisher
.sink { [weak self] text in
self?.tooltip.closeButtonText = text
}.store(in: &subscribers)
}
func setupModel() {
tooltip.title = "5G Ultra Wideband is available in your area."
tooltip.content = "$799.99 (128 GB only) device payment purchase w/new or upgrade smartphone line on postpaid 5G Unlimited plans only req'd. Less up to $800 trade-in/promo credit applied over 36 mos.; promo credit ends if eligibility reqs are no longer met; 0% APR. Trade-in conditions apply.$799.99 (128 GB only) device payment purchase w/new or upgrade smartphone line on postpaid 5G Unlimited plans only req'd. Less up to $800 trade-in."
//setup UI
surfacePickerSelectorView.text = tooltip.surface.rawValue
disabledSwitch.isOn = tooltip.disabled
titleTextField.text = tooltip.title
contentTextField.text = tooltip.content
closeButtonTextField.text = tooltip.closeButtonText
}
//Picker
func setupPicker(){
surfacePickerSelectorView.onPickerDidSelect = { [weak self] item in
self?.tooltip.surface = item
self?.contentTopView.backgroundColor = item.color
}
sizePickerSelectorView.onPickerDidSelect = { [weak self] item in
self?.tooltip.size = item
}
fillColorPickerSelectorView.onPickerDidSelect = { [weak self] item in
self?.tooltip.fillColor = item
}
}
}
class TooltipPopup: UIAlertController {
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
}
}