diff --git a/VDS/Components/InputStepper/InputStepper.swift b/VDS/Components/InputStepper/InputStepper.swift index 71a3c766..8cfe49a4 100644 --- a/VDS/Components/InputStepper/InputStepper.swift +++ b/VDS/Components/InputStepper/InputStepper.swift @@ -135,7 +135,10 @@ open class InputStepper: EntryFieldBase { super.setup() isAccessibilityElement = false accessibilityLabel = "Input Stepper" - containerView.isEnabled = false + containerView.isEnabled = false + + decrementButton.onClick = { _ in self.decrementButtonClick() } + incrementButton.onClick = { _ in self.incrementButtonClick() } } open override func getFieldContainer() -> UIView { @@ -160,6 +163,7 @@ open class InputStepper: EntryFieldBase { decrementButton.surface = surface incrementButton.surface = surface textLabel.surface = surface + updateButtonStates() statusIcon.isHidden = true } @@ -179,6 +183,27 @@ open class InputStepper: EntryFieldBase { //-------------------------------------------------- // MARK: - Private Methods //-------------------------------------------------- + + internal func decrementButtonClick() { + defaultValue = defaultValue - 1 + updateButtonStates() + } + + internal func incrementButtonClick() { + defaultValue = defaultValue + 1 + updateButtonStates() + } + + internal func updateButtonStates() { + if isReadOnly || !isEnabled { + decrementButton.isEnabled = false + incrementButton.isEnabled = false + } else { + decrementButton.isEnabled = defaultValue > _minValue ? true : false + incrementButton.isEnabled = defaultValue < _maxValue ? true : false + } + } + internal func updateSize() { let value = size == .large ? 6.0 : VDSLayout.space1X updateConstraintsToFieldStackView(value: value)