From bbf521b1e52196d0d172707b90d12f20022c51a4 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Thu, 15 Aug 2024 14:00:17 -0500 Subject: [PATCH 1/2] updated setDefaults() Signed-off-by: Matt Bruce --- VDS/BaseClasses/Selector/SelectorBase.swift | 4 ++ .../Selector/SelectorGroupBase.swift | 8 +-- VDS/Components/Breadcrumbs/Breadcrumbs.swift | 9 +-- .../Buttons/ButtonGroup/ButtonGroup.swift | 1 + .../CarouselScrollbar/CarouselScrollbar.swift | 58 ++++++++++++------- VDS/Components/Checkbox/Checkbox.swift | 5 ++ VDS/Components/Checkbox/CheckboxGroup.swift | 6 ++ VDS/Components/Checkbox/CheckboxItem.swift | 5 ++ .../DropdownSelect/DropdownSelect.swift | 21 ++++--- 9 files changed, 77 insertions(+), 40 deletions(-) diff --git a/VDS/BaseClasses/Selector/SelectorBase.swift b/VDS/BaseClasses/Selector/SelectorBase.swift index 05c8a1e8..6af003fd 100644 --- a/VDS/BaseClasses/Selector/SelectorBase.swift +++ b/VDS/BaseClasses/Selector/SelectorBase.swift @@ -111,9 +111,13 @@ open class SelectorBase: Control, SelectorControlable { open override func setDefaults() { super.setDefaults() + showError = false + onClick = { control in control.toggle() } + + onChange = nil bridge_accessibilityLabelBlock = { [weak self] in guard let self else { return "" } diff --git a/VDS/BaseClasses/Selector/SelectorGroupBase.swift b/VDS/BaseClasses/Selector/SelectorGroupBase.swift index 5cda9c82..e04b5e5a 100644 --- a/VDS/BaseClasses/Selector/SelectorGroupBase.swift +++ b/VDS/BaseClasses/Selector/SelectorGroupBase.swift @@ -123,6 +123,7 @@ open class SelectorGroupBase: Control, SelectorGrou open override func setDefaults() { super.setDefaults() onChange = nil + items = [] } /// Handler for the Group to override on a select event. @@ -137,13 +138,6 @@ open class SelectorGroupBase: Control, SelectorGrou self?.sendActions(for: .valueChanged) } } - - /// Resets to default settings. - open override func reset() { - super.reset() - items.forEach{ $0.reset() } - setItemsActions() - } } diff --git a/VDS/Components/Breadcrumbs/Breadcrumbs.swift b/VDS/Components/Breadcrumbs/Breadcrumbs.swift index 1179807d..808b5548 100644 --- a/VDS/Components/Breadcrumbs/Breadcrumbs.swift +++ b/VDS/Components/Breadcrumbs/Breadcrumbs.swift @@ -117,10 +117,11 @@ open class Breadcrumbs: View { containerView.pinToSuperView() } - /// Resets to default settings. - open override func reset() { - super.reset() - breadcrumbs.forEach { $0.reset() } + open override func setDefaults() { + super.setDefaults() + breadcrumbs = [] + breadcrumbModels = [] + isEnabled = true } /// Used to make changes to the View based off a change events or from local properties. diff --git a/VDS/Components/Buttons/ButtonGroup/ButtonGroup.swift b/VDS/Components/Buttons/ButtonGroup/ButtonGroup.swift index 486301c7..520c8d1f 100644 --- a/VDS/Components/Buttons/ButtonGroup/ButtonGroup.swift +++ b/VDS/Components/Buttons/ButtonGroup/ButtonGroup.swift @@ -173,6 +173,7 @@ open class ButtonGroup: View { rowQuantityTablet = 0 alignment = .center childWidth = nil + buttons = [] } open override func reset() { diff --git a/VDS/Components/CarouselScrollbar/CarouselScrollbar.swift b/VDS/Components/CarouselScrollbar/CarouselScrollbar.swift index 8a4d4a50..5b91acb7 100644 --- a/VDS/Components/CarouselScrollbar/CarouselScrollbar.swift +++ b/VDS/Components/CarouselScrollbar/CarouselScrollbar.swift @@ -106,14 +106,15 @@ open class CarouselScrollbar: View { /// A callback when the scrubber position changes. Passes parameters (position). open var onScrubberDrag: ((Int) -> Void)? { - get { nil } - set { + didSet { onScrubberDragCancellable?.cancel() - if let newValue { + if let onScrubberDrag { onScrubberDragCancellable = onScrubberDragPublisher .sink { c in - newValue(c) + onScrubberDrag(c) } + } else { + onScrubberDragCancellable = nil } } } @@ -124,14 +125,15 @@ open class CarouselScrollbar: View { /// A callback when the thumb move forward. Passes parameters (position). open var onMoveForward: ((Int) -> Void)? { - get { nil } - set { + didSet { onMoveForwardCancellable?.cancel() - if let newValue { + if let onMoveForward { onMoveForwardCancellable = onMoveForwardPublisher .sink { c in - newValue(c) + onMoveForward(c) } + } else { + onMoveForwardCancellable = nil } } } @@ -142,14 +144,15 @@ open class CarouselScrollbar: View { /// A callback when the thumb move backward. Passes parameters (position). open var onMoveBackward: ((Int) -> Void)? { - get { nil } - set { + didSet { onMoveBackwardCancellable?.cancel() - if let newValue { + if let onMoveBackward { onMoveBackwardCancellable = onMoveBackwardPublisher .sink { c in - newValue(c) + onMoveBackward(c) } + } else { + onMoveBackwardCancellable = nil } } } @@ -160,14 +163,15 @@ open class CarouselScrollbar: View { /// A callback when the thumb touch start. Passes parameters (position). open var onThumbTouchStart: ((Int) -> Void)? { - get { nil } - set { + didSet { onThumbTouchStartCancellable?.cancel() - if let newValue { + if let onThumbTouchStart { onThumbTouchStartCancellable = onThumbTouchStartPublisher .sink { c in - newValue(c) + onThumbTouchStart(c) } + } else { + onThumbTouchStartCancellable = nil } } } @@ -178,14 +182,15 @@ open class CarouselScrollbar: View { /// A callback when the thumb touch end. Passes parameters (position). open var onThumbTouchEnd: ((Int) -> Void)? { - get { nil } - set { + didSet { onThumbTouchEndCancellable?.cancel() - if let newValue { + if let onThumbTouchEnd { onThumbTouchEndCancellable = onThumbTouchEndPublisher .sink { c in - newValue(c) + onThumbTouchEnd(c) } + } else { + onThumbTouchEndCancellable = nil } } } @@ -294,6 +299,19 @@ open class CarouselScrollbar: View { thumbView.layer.addSublayer(thumbViewLayer) } + open override func setDefaults() { + super.setDefaults() + onMoveForward = nil + onMoveBackward = nil + onScrubberDrag = nil + onThumbTouchEnd = nil + onThumbTouchStart = nil + layout = .oneUP + numberOfSlides = 1 + totalPositions = 1 + position = 1 + } + open override func updateView() { super.updateView() trackView.backgroundColor = trackColorConfiguration.getColor(surface) diff --git a/VDS/Components/Checkbox/Checkbox.swift b/VDS/Components/Checkbox/Checkbox.swift index 5b2afdc5..f1c99691 100644 --- a/VDS/Components/Checkbox/Checkbox.swift +++ b/VDS/Components/Checkbox/Checkbox.swift @@ -62,6 +62,11 @@ open class Checkbox: SelectorBase { selectorColorConfiguration.setSurfaceColors(VDSColor.elementsPrimaryOndark, VDSColor.elementsPrimaryOnlight, forState: .selected) } + open override func setDefaults() { + super.setDefaults() + isAnimated = false + } + /// This will change the state of the Selector and execute the actionBlock if provided. open override func toggle() { guard isEnabled else { return } diff --git a/VDS/Components/Checkbox/CheckboxGroup.swift b/VDS/Components/Checkbox/CheckboxGroup.swift index 1431d9dc..226083fe 100644 --- a/VDS/Components/Checkbox/CheckboxGroup.swift +++ b/VDS/Components/Checkbox/CheckboxGroup.swift @@ -87,6 +87,12 @@ open class CheckboxGroup: SelectorGroupBase, SelectorGroupMultiSel mainStackView.spacing = VDSLayout.space6X } + open override func setDefaults() { + super.setDefaults() + showError = false + inputId = nil + } + public override func didSelect(_ selectedControl: CheckboxItem) { selectedControl.toggle() if selectedControl.isSelected, showError{ diff --git a/VDS/Components/Checkbox/CheckboxItem.swift b/VDS/Components/Checkbox/CheckboxItem.swift index c115fe79..d3af344b 100644 --- a/VDS/Components/Checkbox/CheckboxItem.swift +++ b/VDS/Components/Checkbox/CheckboxItem.swift @@ -55,6 +55,11 @@ open class CheckboxItem: SelectorItemBase { print(foo.customView.isAnimated) } + + open override func setDefaults() { + super.setDefaults() + isAnimated = false + } /// Used to make changes to the View based off a change events or from local properties. open override func updateView() { diff --git a/VDS/Components/DropdownSelect/DropdownSelect.swift b/VDS/Components/DropdownSelect/DropdownSelect.swift index 794fe808..2c243a26 100644 --- a/VDS/Components/DropdownSelect/DropdownSelect.swift +++ b/VDS/Components/DropdownSelect/DropdownSelect.swift @@ -82,24 +82,15 @@ open class DropdownSelect: EntryFieldBase { open var inlineDisplayLabel = Label().with { $0.setContentCompressionResistancePriority(.required, for: .vertical) $0.setContentCompressionResistancePriority(.required, for: .horizontal) - $0.textAlignment = .left - $0.textStyle = .boldBodyLarge - $0.numberOfLines = 1 - $0.sizeToFit() } open var selectedOptionLabel = Label().with { $0.setContentCompressionResistancePriority(.required, for: .vertical) $0.setContentCompressionResistancePriority(.required, for: .horizontal) - $0.textAlignment = .left - $0.textStyle = .bodyLarge - $0.numberOfLines = 1 } open var dropdownField = UITextField().with { $0.translatesAutoresizingMaskIntoConstraints = false - $0.tintColor = UIColor.clear - $0.font = TextStyle.bodyLarge.font } open var optionsPicker = UIPickerView() @@ -163,13 +154,25 @@ open class DropdownSelect: EntryFieldBase { super.setDefaults() showInlineLabel = false selectId = nil + inlineDisplayLabel.textAlignment = .left inlineDisplayLabel.textStyle = .boldBodyLarge + inlineDisplayLabel.numberOfLines = 1 + selectedOptionLabel.textAlignment = .left selectedOptionLabel.textStyle = .bodyLarge + selectedOptionLabel.numberOfLines = 1 + dropdownField.tintColor = UIColor.clear + dropdownField.font = TextStyle.bodyLarge.font showInlineLabel = false options = [] selectId = nil } + open override func reset() { + inlineDisplayLabel.reset() + selectedOptionLabel.reset() + super.reset() + } + open override func getFieldContainer() -> UIView { let controlStackView = UIStackView().with { $0.translatesAutoresizingMaskIntoConstraints = false From 67bdcf51040d1c1dab6656d60e86a8d6afc3b245 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Thu, 15 Aug 2024 14:41:36 -0500 Subject: [PATCH 2/2] more updaets for setDefaults Signed-off-by: Matt Bruce --- VDS/Components/Pagination/Pagination.swift | 4 ++-- VDS/Components/TitleLockup/TitleLockup.swift | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/VDS/Components/Pagination/Pagination.swift b/VDS/Components/Pagination/Pagination.swift index 6234e155..1e51f4ef 100644 --- a/VDS/Components/Pagination/Pagination.swift +++ b/VDS/Components/Pagination/Pagination.swift @@ -57,7 +57,7 @@ open class Pagination: View { ///Next button to select next page public let nextButton: PaginationButton = .init(type: .next) /// A callback when the page changes. Passes parameters (selectedPage). - public var onPageDidSelect: ((Int) -> Void)? + open var onPageDidSelect: ((Int) -> Void)? /// Total number of pages, allows limit ranging from 0 to 9999. @Clamping(range: 0...9999) public var total: Int { @@ -70,7 +70,7 @@ open class Pagination: View { } } ///Selected active page number and clips to total pages if selected index is greater than the total pages. - public var selectedPage: Int { + open var selectedPage: Int { set { if newValue >= total { _selectedPageIndex = total - 1 diff --git a/VDS/Components/TitleLockup/TitleLockup.swift b/VDS/Components/TitleLockup/TitleLockup.swift index 25aaf248..1711939c 100644 --- a/VDS/Components/TitleLockup/TitleLockup.swift +++ b/VDS/Components/TitleLockup/TitleLockup.swift @@ -288,7 +288,6 @@ open class TitleLockup: View { subTitleModel = nil } - var labelViews = [UIView]() /// Used to make changes to the View based off a change events or from local properties. open override func updateView() { super.updateView()