diff --git a/VDS/Components/Badge/Badge.swift b/VDS/Components/Badge/Badge.swift index bf2ff583..5f997c45 100644 --- a/VDS/Components/Badge/Badge.swift +++ b/VDS/Components/Badge/Badge.swift @@ -56,6 +56,11 @@ open class Badge: View { //-------------------------------------------------- // MARK: - Configuration //-------------------------------------------------- + private var minWidth: CGFloat = 23.0 + private var labelInset: UIEdgeInsets = .init(top: 2, + left: VDSLayout.Spacing.space1X.value, + bottom: 2, + right: VDSLayout.Spacing.space1X.value) /// ColorConfiguration that is mapped to the 'fillColor' for the surface. private var backgroundColorConfiguration: AnyColorable = { @@ -104,13 +109,10 @@ open class Badge: View { layer.cornerRadius = 2 addSubview(label) - label.pinToSuperView(.init(top: 2, - left: VDSLayout.Spacing.space1X.value, - bottom: 2, - right: VDSLayout.Spacing.space1X.value)) + label.pinToSuperView(labelInset) - maxWidthConstraint = label.widthAnchor.constraint(lessThanOrEqualToConstant: 100) - minWidthConstraint = label.widthAnchor.constraint(greaterThanOrEqualToConstant: 23) + maxWidthConstraint = label.widthAnchor.constraint(lessThanOrEqualToConstant: 0) + minWidthConstraint = label.widthAnchor.constraint(greaterThanOrEqualToConstant: minWidth) minWidthConstraint?.isActive = true } @@ -145,11 +147,13 @@ open class Badge: View { label.surface = surface label.disabled = disabled - if let maxWidth = maxWidth, let minWidth = minWidthConstraint?.constant, maxWidth > minWidth { + if let maxWidth = maxWidth, maxWidth > minWidth { maxWidthConstraint?.constant = maxWidth maxWidthConstraint?.isActive = true + minWidthConstraint?.isActive = false } else { maxWidthConstraint?.isActive = false + minWidthConstraint?.isActive = true } } }