updated samples

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2024-09-20 13:40:23 -05:00
parent c1c92f0926
commit f31db5e614
13 changed files with 79 additions and 30 deletions

View File

@ -110,11 +110,8 @@ class BadgeViewController: BaseViewController<Badge> {
extension BadgeViewController: ComponentSampleable {
static func makeSample() -> ComponentSample {
let component = Self.makeComponent()
component.fillColor = .red
component.text = "Terms and conditions"
component.maxWidth = 70
component.numberOfLines = 3
return ComponentSample(component: component, trailingPinningType: .lessThanOrEqual)
let c = Self()
c.setupModel()
return ComponentSample(component: c.component, trailingPinningType: .lessThanOrEqual)
}
}

View File

@ -334,15 +334,33 @@ public class BaseViewController<Component: UIView>: UIViewController, Initable ,
viewController.didMove(toParent: self)
}
var componentTrailingEqualConstraint: NSLayoutConstraint?
var componentTrailingLessThanEqualConstraint: NSLayoutConstraint?
open func addContentTopView(view: UIView, edgeSpacing: CGFloat = 16.0, pinTrailing: Bool = true) {
view.translatesAutoresizingMaskIntoConstraints = false
if pinTrailing {
contentTopView.addSubview(view)
view.pinToSuperView(.uniform(edgeSpacing))
componentTrailingEqualConstraint = view.pinTrailing(anchor: contentTopView.trailingAnchor, constant: edgeSpacing)?.deactivate()
componentTrailingLessThanEqualConstraint = view.pinTrailingLessThanOrEqualTo(anchor: contentTopView.trailingAnchor, constant: edgeSpacing)?.deactivate()
view
.pinTop(edgeSpacing)
.pinLeading(edgeSpacing)
.pinBottom(edgeSpacing)
if pinTrailing {
componentTrailingEqualConstraint?.activate()
} else {
let wrapper = UIView.makeWrapper(for: view)
contentTopView.addSubview(wrapper)
wrapper.pinToSuperView(.uniform(edgeSpacing))
componentTrailingLessThanEqualConstraint?.activate()
}
}
open func updateComponentConstraint(pinTrailing: Bool = true) {
componentTrailingEqualConstraint?.deactivate()
componentTrailingLessThanEqualConstraint?.deactivate()
if pinTrailing {
componentTrailingEqualConstraint?.activate()
} else {
componentTrailingLessThanEqualConstraint?.activate()
}
}

View File

@ -47,13 +47,6 @@ class CalendarViewController: BaseViewController<CalendarBase> {
override func viewDidLoad() {
super.viewDidLoad()
addContentTopView(view: component)
component.minDate = Date().startOfMonth
component.maxDate = Date().endOfMonth
component.onChange = { [weak self] control in
self?.label.text = DateFormatter.localizedString(from: control.selectedDate, dateStyle: .short, timeStyle: .none)
}
minDatePicker.date = component.minDate
maxDatePicker.date = component.maxDate
setupPicker()
setupModel()
}
@ -206,6 +199,13 @@ class CalendarViewController: BaseViewController<CalendarBase> {
func setupModel() {
let calendar = Calendar.current
let indicatorDate = calendar.startOfDay(for: calendar.date(byAdding: .day, value: 1, to: Date())!)
component.minDate = Date().startOfMonth
component.maxDate = Date().endOfMonth
component.onChange = { [weak self] control in
self?.label.text = DateFormatter.localizedString(from: control.selectedDate, dateStyle: .short, timeStyle: .none)
}
minDatePicker.date = component.minDate
maxDatePicker.date = component.maxDate
component.indicators = indicators
legendOneField.text = "Due Date"
legendTwoField.text = "Auto Pay"
@ -303,3 +303,11 @@ class CalendarViewController: BaseViewController<CalendarBase> {
return day
}
}
extension CalendarViewController: ComponentSampleable {
static func makeSample() -> ComponentSample {
let c = Self()
c.viewDidLoad()
return ComponentSample(component: c.component, edgeInset: .init(top: 16, left: 0, bottom: 16, right: 0))
}
}

View File

@ -219,3 +219,11 @@ class CarouselViewController: BaseViewController<Carousel> {
}
}
}
extension CarouselViewController: ComponentSampleable {
static func makeSample() -> ComponentSample {
let c = Self()
c.setupModel()
return ComponentSample(component: c.component)
}
}

View File

@ -138,6 +138,6 @@ extension CheckboxGroupViewController: ComponentSampleable {
component.selectorModels = [checkbox1, checkbox2]
return ComponentSample(component: component, trailingPinningType: .lessThanOrEqual)
return ComponentSample(component: component)
}
}

View File

@ -110,6 +110,6 @@ extension CheckboxItemViewController: ComponentSampleable {
component.childText = "I agree to Verizon's terms and conditions click here"
component.errorText = "Error Text"
return ComponentSample(component: component, trailingPinningType: .lessThanOrEqual)
return ComponentSample(component: component)
}
}

View File

@ -142,3 +142,11 @@ class PriceLockupViewController: BaseViewController<PriceLockup> {
}
}
}
extension PriceLockupViewController: ComponentSampleable {
static func makeSample() -> ComponentSample {
let c = Self()
c.setupModel()
return ComponentSample(component: c.component)
}
}

View File

@ -140,6 +140,6 @@ extension RadioBoxGroupViewController: ComponentSampleable {
component.selectorModels = [radioBox1, radioBox2]
return ComponentSample(component: component, trailingPinningType: .lessThanOrEqual)
return ComponentSample(component: component)
}
}

View File

@ -133,6 +133,6 @@ extension RadioButtonGroupViewController: ComponentSampleable {
component.selectorModels = [radioButton1, radioButton2, radioButton3]
return ComponentSample(component: component, trailingPinningType: .lessThanOrEqual)
return ComponentSample(component: component)
}
}

View File

@ -105,6 +105,6 @@ extension RadioButtonItemViewController: ComponentSampleable {
component.childText = "I agree to Verizon's terms and conditions click here"
component.errorText = "Error Text"
return ComponentSample(component: component, trailingPinningType: .lessThanOrEqual)
return ComponentSample(component: component)
}
}

View File

@ -218,3 +218,11 @@ class TableViewController: BaseViewController<Table> {
self.component.tableRows = rows
}
}
extension TableViewController: ComponentSampleable {
static func makeSample() -> ComponentSample {
let c = Self()
c.setupModel()
return ComponentSample(component: c.component)
}
}

View File

@ -20,7 +20,7 @@ public struct ComponentSample {
public enum LessThanPinningType: String {
case none, equalTo, lessThanOrEqual
}
public var edgeInset: UIEdgeInsets = .uniform(16)
public var top: GreaterThanPinningType = .equalTo
public var leading: GreaterThanPinningType = .equalTo
public var trailing: LessThanPinningType = .equalTo
@ -30,16 +30,18 @@ public struct ComponentSample {
topPinningType: GreaterThanPinningType = .equalTo,
leadingPinningType: GreaterThanPinningType = .equalTo,
trailingPinningType: LessThanPinningType = .equalTo,
bottomPinningType: LessThanPinningType = .equalTo) {
bottomPinningType: LessThanPinningType = .equalTo,
edgeInset: UIEdgeInsets = .uniform(16)) {
self.component = component
self.top = topPinningType
self.leading = leadingPinningType
self.trailing = trailingPinningType
self.bottom = bottomPinningType
self.edgeInset = edgeInset
}
public func pin(edgeInset: UIEdgeInsets = .zero) {
public func pin() {
guard let superview = component.superview else { return }
switch top {
@ -126,10 +128,10 @@ public class TableViewTestController: UIViewController, Initable, Surfaceable {
}
}
let toggleSample = ComponentSample(component: toggle, leadingPinningType: .none)
let toggleSample = ComponentSample(component: toggle, leadingPinningType: .none, edgeInset: .init(top: 5, left: 0, bottom: 5, right: 16))
let wrapper = UIView().with { $0.translatesAutoresizingMaskIntoConstraints = false }
wrapper.addSubview(toggle)
toggleSample.pin(edgeInset: .init(top: 5, left: 0, bottom: 5, right: 16))
toggleSample.pin()
let stackView = UIStackView(arrangedSubviews: [wrapper, tableView]).with {
$0.translatesAutoresizingMaskIntoConstraints = false
@ -193,7 +195,7 @@ extension TableViewTestController : UITableViewDelegate, UITableViewDataSource {
let cell = UITableViewCell()
cell.contentView.addSubview(component)
sample.pin(edgeInset: .uniform(16))
sample.pin()
cell.backgroundColor = surface.color
cell.layoutIfNeeded()
return cell