From 3859c8eeb72960cd953424620c51a9ef96d5eea8 Mon Sep 17 00:00:00 2001 From: Matt Bruce Date: Fri, 10 May 2024 16:17:12 -0500 Subject: [PATCH] refactored width to fields Signed-off-by: Matt Bruce --- .../InputField/FieldTypes/FieldType.swift | 15 ++++++++++++- .../TextFields/InputField/InputField.swift | 6 ++--- .../TextFields/TextArea/TextArea.swift | 22 +++++-------------- 3 files changed, 22 insertions(+), 21 deletions(-) diff --git a/VDS/Components/TextFields/InputField/FieldTypes/FieldType.swift b/VDS/Components/TextFields/InputField/FieldTypes/FieldType.swift index 2c99b9c5..59906df7 100644 --- a/VDS/Components/TextFields/InputField/FieldTypes/FieldType.swift +++ b/VDS/Components/TextFields/InputField/FieldTypes/FieldType.swift @@ -78,15 +78,28 @@ extension InputField { inputField.fieldStackView.setCustomSpacing(0, after: inputField.statusIcon) } +// //set the width constraints +// if let width = inputField.width, width > minWidth { +// inputField.widthConstraint?.constant = width +// inputField.widthConstraint?.isActive = true +// inputField.minWidthConstraint?.isActive = false +// } else { +// inputField.minWidthConstraint?.constant = minWidth +// inputField.widthConstraint?.isActive = false +// inputField.minWidthConstraint?.isActive = true +// } //set the width constraints - if let width = inputField.width, width > minWidth { + if let width = inputField.width, width > minWidth { inputField.widthConstraint?.constant = width inputField.widthConstraint?.isActive = true inputField.minWidthConstraint?.isActive = false + inputField.maxWidthConstraint?.isActive = false } else { inputField.minWidthConstraint?.constant = minWidth + inputField.maxWidthConstraint?.constant = inputField.frame.width inputField.widthConstraint?.isActive = false inputField.minWidthConstraint?.isActive = true + inputField.maxWidthConstraint?.isActive = true } //placeholder diff --git a/VDS/Components/TextFields/InputField/InputField.swift b/VDS/Components/TextFields/InputField/InputField.swift index 9150ae6d..847e5da8 100644 --- a/VDS/Components/TextFields/InputField/InputField.swift +++ b/VDS/Components/TextFields/InputField/InputField.swift @@ -34,6 +34,7 @@ open class InputField: EntryFieldBase { //-------------------------------------------------- // MARK: - Private Properties //-------------------------------------------------- + internal var maxWidthConstraint: NSLayoutConstraint? internal var minWidthConstraint: NSLayoutConstraint? internal var titleLabelWidthConstraint: NSLayoutConstraint? @@ -171,9 +172,8 @@ open class InputField: EntryFieldBase { titleLabel.setContentCompressionResistancePriority(.required, for: .horizontal) titleLabel.setContentHuggingPriority(.required, for: .horizontal) titleLabelWidthConstraint = titleLabel.width(constant: 0) - - minWidthConstraint = containerView.widthAnchor.constraint(greaterThanOrEqualToConstant: 0) - minWidthConstraint?.isActive = true + maxWidthConstraint = containerView.width(constant: containerSize.width) + minWidthConstraint = containerView.widthGreaterThanEqualTo(constant: 0) textField.heightAnchor.constraint(equalToConstant: 20).isActive = true textField.delegate = self diff --git a/VDS/Components/TextFields/TextArea/TextArea.swift b/VDS/Components/TextFields/TextArea/TextArea.swift index 61a87e13..9879c54d 100644 --- a/VDS/Components/TextFields/TextArea/TextArea.swift +++ b/VDS/Components/TextFields/TextArea/TextArea.swift @@ -51,21 +51,8 @@ open class TextArea: EntryFieldBase { $0.textAlignment = .right $0.numberOfLines = 1 } - - private var _minHeight: Height = .twoX - - open var minHeight: Height? { - get { return _minHeight } - set { - if let newValue { - _minHeight = newValue - } else { - _minHeight = .twoX - } - textViewHeightConstraint?.constant = _minHeight.value - setNeedsUpdate() - } - } + + open var minHeight: Height = .twoX { didSet { setNeedsUpdate() } } //-------------------------------------------------- // MARK: - Public Properties @@ -211,7 +198,8 @@ open class TextArea: EntryFieldBase { //set the width constraints minWidthConstraint?.constant = containerSize.width maxWidthConstraint?.constant = frame.width - + textViewHeightConstraint?.constant = minHeight.value + characterCounterLabel.text = getCharacterCounterText() statusIcon.color = iconColorConfiguration.getColor(self) @@ -309,7 +297,7 @@ open class TextArea: EntryFieldBase { //since it will autogrow with the current settings if let textViewHeightConstraint, textView.isEditable { var height = textView.contentSize.height - height = max(height, _minHeight.value) + height = max(height, minHeight.value) if height > Height.twoX.value && height <= Height.fourX.value { textViewHeightConstraint.constant = Height.fourX.value } else if height > Height.fourX.value {