From cee74d0e324cd86c4d5a5c46c10ee1b16f7863a4 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Wed, 24 Apr 2024 17:31:26 -0500 Subject: [PATCH 1/5] updated vcs Signed-off-by: Matt Bruce --- VDSSample/ViewControllers/ButtonIconViewController.swift | 1 + VDSSample/ViewControllers/TileContainerViewController.swift | 2 ++ 2 files changed, 3 insertions(+) diff --git a/VDSSample/ViewControllers/ButtonIconViewController.swift b/VDSSample/ViewControllers/ButtonIconViewController.swift index 8d3b24a..85f175c 100644 --- a/VDSSample/ViewControllers/ButtonIconViewController.swift +++ b/VDSSample/ViewControllers/ButtonIconViewController.swift @@ -181,6 +181,7 @@ class ButtonIconViewController: BaseViewController { let name = Icon.Name.addToFavorite component.iconName = name + component.onChange = { c in print("changed: \(c.isSelected)") } //setup UI surfacePickerSelectorView.text = component.surface.rawValue surfaceTypePickerSelectorView.text = component.surfaceType.rawValue diff --git a/VDSSample/ViewControllers/TileContainerViewController.swift b/VDSSample/ViewControllers/TileContainerViewController.swift index 2af2295..a266f0d 100644 --- a/VDSSample/ViewControllers/TileContainerViewController.swift +++ b/VDSSample/ViewControllers/TileContainerViewController.swift @@ -99,6 +99,8 @@ class TileContainerViewController: BaseViewController { addContentTopView(view: .makeWrapper(for: component)) component.width = 150 component.color = .secondary + component.accessibilityLabel = "Tile Container" + component.addContentView(Label().with { $0.text = "Testing Label" }) setupPicker() setupModel() } From bc923accd3f665c5fbb31b679105e184662eef05 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Thu, 25 Apr 2024 15:07:41 -0500 Subject: [PATCH 2/5] refactored Signed-off-by: Matt Bruce --- VDSSample/ViewControllers/TileContainerViewController.swift | 2 +- VDSSample/ViewControllers/TileletViewController.swift | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/VDSSample/ViewControllers/TileContainerViewController.swift b/VDSSample/ViewControllers/TileContainerViewController.swift index 2af2295..b605e55 100644 --- a/VDSSample/ViewControllers/TileContainerViewController.swift +++ b/VDSSample/ViewControllers/TileContainerViewController.swift @@ -165,7 +165,7 @@ class TileContainerViewController: BaseViewController { } showDropShadowSwitch.onChange = { [weak self] sender in - self?.component.showDropShadows = sender.isOn + self?.component.showDropShadow = sender.isOn } heightTextField diff --git a/VDSSample/ViewControllers/TileletViewController.swift b/VDSSample/ViewControllers/TileletViewController.swift index 772a189..038487b 100644 --- a/VDSSample/ViewControllers/TileletViewController.swift +++ b/VDSSample/ViewControllers/TileletViewController.swift @@ -291,7 +291,7 @@ class TileletViewController: BaseViewController { } showDropShadowSwitch.onChange = { [weak self] sender in - self?.component.showDropShadows = sender.isOn + self?.component.showDropShadow = sender.isOn } imageFallbackColorPickerSelectorView.onPickerDidSelect = { [weak self] item in From ff6182db753c11779bb7cae79df8f9b34556cba8 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Thu, 25 Apr 2024 16:30:55 -0500 Subject: [PATCH 3/5] added samples Signed-off-by: Matt Bruce --- .../BreadcrumbsViewController.swift | 16 ++++++++++++ .../ButtonIconViewController.swift | 3 +++ .../CarouselScrollbarViewConttroller.swift | 9 +++++++ .../DropShawdowViewController.swift | 26 +++++++++++++++++++ .../DropdownSelectViewController.swift | 19 ++++++++++++++ .../PaginationViewController.swift | 8 ++++++ 6 files changed, 81 insertions(+) diff --git a/VDSSample/ViewControllers/BreadcrumbsViewController.swift b/VDSSample/ViewControllers/BreadcrumbsViewController.swift index 1cee787..cecc9a4 100644 --- a/VDSSample/ViewControllers/BreadcrumbsViewController.swift +++ b/VDSSample/ViewControllers/BreadcrumbsViewController.swift @@ -90,3 +90,19 @@ class BreadcrumbsViewController: BaseViewController { } } + +extension BreadcrumbsViewController: ComponentSampleable { + static func makeSample() -> ComponentSample { + let component = Self.makeComponent() + component.breadcrumbModels = [ + .init(text: "Home"), + .init(text: "Support", enabeled: false), + .init(text: "Service & Apps"), + .init(text: "My Verizon"), + .init(text: "Bill"), + .init(text: "Mobile Billing & Payments"), + .init(text: "Billing statement FAQs", selected: true) + ] + return ComponentSample(component: component) + } +} diff --git a/VDSSample/ViewControllers/ButtonIconViewController.swift b/VDSSample/ViewControllers/ButtonIconViewController.swift index 85f175c..d7f17ed 100644 --- a/VDSSample/ViewControllers/ButtonIconViewController.swift +++ b/VDSSample/ViewControllers/ButtonIconViewController.swift @@ -262,6 +262,9 @@ extension ButtonIconViewController: ComponentSampleable { static func makeSample() -> ComponentSample { let component = Self.makeComponent() component.iconName = .addToFavorite + component.selectedIconName = .addedToFavorite + component.selectable = true + component.onChange = { c in print("changed: \(c.isSelected)") } component.size = .large return ComponentSample(component: component, trailingPinningType: .lessThanOrEqual) } diff --git a/VDSSample/ViewControllers/CarouselScrollbarViewConttroller.swift b/VDSSample/ViewControllers/CarouselScrollbarViewConttroller.swift index 99ca1ce..63b0da4 100644 --- a/VDSSample/ViewControllers/CarouselScrollbarViewConttroller.swift +++ b/VDSSample/ViewControllers/CarouselScrollbarViewConttroller.swift @@ -119,3 +119,12 @@ class CarouselScrollbarViewConttroller: BaseViewController { } } } + + +extension CarouselScrollbarViewConttroller: ComponentSampleable { + static func makeSample() -> ComponentSample { + let component = Self.makeComponent() + component.numberOfSlides = 4 + return ComponentSample(component: component) + } +} diff --git a/VDSSample/ViewControllers/DropShawdowViewController.swift b/VDSSample/ViewControllers/DropShawdowViewController.swift index c0be652..17d3733 100644 --- a/VDSSample/ViewControllers/DropShawdowViewController.swift +++ b/VDSSample/ViewControllers/DropShawdowViewController.swift @@ -431,3 +431,29 @@ public class ShadowView: View { } } + +extension ViewProtocol where Self: UIView { + private func createShadowLayer() -> CALayer { + let shadowLayer = CALayer() + shadowLayer.backgroundColor = UIColor.clear.cgColor + shadowLayer.frame = bounds + return shadowLayer + } + + func addCustomShadow(config: DropShadowConfiguration) { + let shadowLayer = createShadowLayer() +// shadowLayer.shadowColor = config.shadowColorConfiguration.getColor(self).cgColor +// shadowLayer.shadowOpacity = config.shadowOpacityConfiguration.value(for: self) +// shadowLayer.shadowOffset = offset +// shadowLayer.shadowRadius = radius + layer.insertSublayer(shadowLayer, at: 0) + } + + func removeAllCustomShadows() { + layer.sublayers?.forEach { sublayer in + if sublayer.shadowOpacity > 0 && sublayer.backgroundColor == UIColor.clear.cgColor { + sublayer.removeFromSuperlayer() + } + } + } +} diff --git a/VDSSample/ViewControllers/DropdownSelectViewController.swift b/VDSSample/ViewControllers/DropdownSelectViewController.swift index 177aa4c..52552c3 100644 --- a/VDSSample/ViewControllers/DropdownSelectViewController.swift +++ b/VDSSample/ViewControllers/DropdownSelectViewController.swift @@ -186,3 +186,22 @@ class DropdownSelectViewController: BaseViewController { content: content) : nil } } + +extension DropdownSelectViewController: ComponentSampleable { + static func makeSample() -> ComponentSample { + let component = Self.makeComponent() + component.labelText = "Street Address" + component.helperText = "For example: 123 Verizon St" + component.errorText = "Enter a valid address." + component.tooltipModel = .init(title: "Check the formatting of your address", content:"House/Building number then street name") + component.options = [ + .init(text: "Alabama"), + .init(text: "Alaska"), + .init(text: "Arizona"), + .init(text: "Arkansas") + ] + return ComponentSample(component: component) + } +} + + diff --git a/VDSSample/ViewControllers/PaginationViewController.swift b/VDSSample/ViewControllers/PaginationViewController.swift index 47a5807..920c4a9 100644 --- a/VDSSample/ViewControllers/PaginationViewController.swift +++ b/VDSSample/ViewControllers/PaginationViewController.swift @@ -46,3 +46,11 @@ final class PaginationViewController: BaseViewController { }.store(in: &subscribers) } } + +extension PaginationViewController: ComponentSampleable { + static func makeSample() -> ComponentSample { + let component = Self.makeComponent() + component.total = 10 + return ComponentSample(component: component) + } +} From 43ec6d0671019bde6e869c97182fc92fa54d4855 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Mon, 29 Apr 2024 11:16:36 -0500 Subject: [PATCH 4/5] added check for dismiss first responder Signed-off-by: Matt Bruce --- .../ViewControllers/BaseViewController.swift | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/VDSSample/ViewControllers/BaseViewController.swift b/VDSSample/ViewControllers/BaseViewController.swift index 3c31212..46526d9 100644 --- a/VDSSample/ViewControllers/BaseViewController.swift +++ b/VDSSample/ViewControllers/BaseViewController.swift @@ -261,6 +261,21 @@ public class BaseViewController: UIViewController, Initable , loadCustomRotors() UIAccessibility.post(notification: .screenChanged, argument: component) } + + if component.canBecomeFirstResponder { + let tapGesture = UITapGestureRecognizer(target: self, action: #selector(dismissKeyboard)) + tapGesture.cancelsTouchesInView = false // This allows the tap to pass through to other views. + view.addGestureRecognizer(tapGesture) + } + } + + @objc func dismissKeyboard(_ sender: UITapGestureRecognizer) { + let location = sender.location(in: self.view) + + // Check if the touch is outside the textView + if !component.frame.contains(location) { + component.resignFirstResponder() + } } func isViewHiddenByKeyboard(view: UIView, keyboardFrame: CGRect) -> Bool { From 05d2e448d3955c906f2c9475474c93d68bed1be4 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Mon, 29 Apr 2024 13:07:33 -0500 Subject: [PATCH 5/5] updated version Signed-off-by: Matt Bruce --- VDSSample.xcodeproj/project.pbxproj | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/VDSSample.xcodeproj/project.pbxproj b/VDSSample.xcodeproj/project.pbxproj index fc9f459..c6ad2b1 100644 --- a/VDSSample.xcodeproj/project.pbxproj +++ b/VDSSample.xcodeproj/project.pbxproj @@ -692,7 +692,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 59; + CURRENT_PROJECT_VERSION = 60; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = FCMA4QKS77; GENERATE_INFOPLIST_FILE = YES; @@ -727,7 +727,7 @@ CODE_SIGN_IDENTITY = "Apple Development"; "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; CODE_SIGN_STYLE = Manual; - CURRENT_PROJECT_VERSION = 59; + CURRENT_PROJECT_VERSION = 60; DEVELOPMENT_TEAM = ""; "DEVELOPMENT_TEAM[sdk=iphoneos*]" = FCMA4QKS77; GENERATE_INFOPLIST_FILE = YES;