Merge branch 'bugfix/notificationEnhancements' into 'develop'
Removed vertical layout & max width constraint See merge request BPHV_MIPS/vds_ios!169
This commit is contained in:
commit
9b4eccfc6d
@ -53,11 +53,6 @@ open class Notification: View {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Enum used to describe the orientation of Notification.
|
|
||||||
public enum Layout: String, CaseIterable {
|
|
||||||
case vertical, horizontal
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Private Properties
|
// MARK: - Private Properties
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
@ -80,19 +75,9 @@ open class Notification: View {
|
|||||||
$0.translatesAutoresizingMaskIntoConstraints = false
|
$0.translatesAutoresizingMaskIntoConstraints = false
|
||||||
}
|
}
|
||||||
|
|
||||||
private var labelButtonViewSpacing: CGFloat {
|
private var labelButtonViewSpacing: CGFloat { UIDevice.isIPad ? 20 : 16 }
|
||||||
let spacing: CGFloat = UIDevice.isIPad ? 20 : 16
|
|
||||||
return switch layout {
|
|
||||||
case .vertical:
|
|
||||||
0
|
|
||||||
case .horizontal:
|
|
||||||
spacing
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal var onCloseSubscriber: AnyCancellable?
|
internal var onCloseSubscriber: AnyCancellable?
|
||||||
|
|
||||||
private var maxWidthConstraint: NSLayoutConstraint?
|
|
||||||
|
|
||||||
private var leadingConstraint: NSLayoutConstraint?
|
private var leadingConstraint: NSLayoutConstraint?
|
||||||
|
|
||||||
@ -172,19 +157,6 @@ open class Notification: View {
|
|||||||
|
|
||||||
/// Add this attribute determine your type of Notification.
|
/// Add this attribute determine your type of Notification.
|
||||||
open var style: Style = .info { didSet { setNeedsUpdate()}}
|
open var style: Style = .info { didSet { setNeedsUpdate()}}
|
||||||
|
|
||||||
private var _layout: Layout = .vertical
|
|
||||||
|
|
||||||
/// Determines the orientation of buttons and text in the Notification.
|
|
||||||
open var layout: Layout {
|
|
||||||
set {
|
|
||||||
if !UIDevice.isIPad, newValue == .horizontal { return }
|
|
||||||
_layout = newValue
|
|
||||||
buttonGroup.alignment = _layout == .horizontal ? .center : .left
|
|
||||||
setNeedsUpdate()
|
|
||||||
}
|
|
||||||
get { _layout }
|
|
||||||
}
|
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Configuration
|
// MARK: - Configuration
|
||||||
@ -219,18 +191,11 @@ open class Notification: View {
|
|||||||
return 288
|
return 288
|
||||||
}
|
}
|
||||||
|
|
||||||
private var maxViewWidth: CGFloat {
|
|
||||||
return 1232
|
|
||||||
}
|
|
||||||
|
|
||||||
private var labelViewWidthConstraint: NSLayoutConstraint?
|
|
||||||
private var labelViewBottomConstraint: NSLayoutConstraint?
|
private var labelViewBottomConstraint: NSLayoutConstraint?
|
||||||
private var labelViewAndButtonViewConstraint: NSLayoutConstraint?
|
private var labelViewAndButtonViewConstraint: NSLayoutConstraint?
|
||||||
private var buttonViewTopConstraint: NSLayoutConstraint?
|
private var buttonViewTopConstraint: NSLayoutConstraint?
|
||||||
private var typeIconWidthConstraint: NSLayoutConstraint?
|
private var typeIconWidthConstraint: NSLayoutConstraint?
|
||||||
private var closeIconWidthConstraint: NSLayoutConstraint?
|
private var closeIconWidthConstraint: NSLayoutConstraint?
|
||||||
private var buttonGroupCenterYConstraint: NSLayoutConstraint?
|
|
||||||
private var buttonGroupBottomConstraint: NSLayoutConstraint?
|
|
||||||
|
|
||||||
//--------------------------------------------------
|
//--------------------------------------------------
|
||||||
// MARK: - Overrides
|
// MARK: - Overrides
|
||||||
@ -255,21 +220,18 @@ open class Notification: View {
|
|||||||
mainStackView.heightAnchor.constraint(greaterThanOrEqualToConstant: minContentHeight),
|
mainStackView.heightAnchor.constraint(greaterThanOrEqualToConstant: minContentHeight),
|
||||||
layoutGuide.widthAnchor.constraint(greaterThanOrEqualToConstant: minViewWidth)
|
layoutGuide.widthAnchor.constraint(greaterThanOrEqualToConstant: minViewWidth)
|
||||||
])
|
])
|
||||||
maxWidthConstraint = layoutGuide.widthAnchor.constraint(lessThanOrEqualToConstant: maxViewWidth)
|
|
||||||
|
|
||||||
labelButtonView.addSubview(labelsView)
|
labelButtonView.addSubview(labelsView)
|
||||||
labelsView
|
labelsView
|
||||||
.pinTop()
|
.pinTop()
|
||||||
.pinLeading()
|
.pinLeading()
|
||||||
labelViewWidthConstraint = labelsView.widthAnchor.constraint(equalTo: labelButtonView.widthAnchor, multiplier: 1.0)
|
labelsView.widthAnchor.constraint(equalTo: labelButtonView.widthAnchor, multiplier: 1.0).activate()
|
||||||
labelViewWidthConstraint?.activate()
|
|
||||||
labelViewBottomConstraint = labelButtonView.bottomAnchor.constraint(equalTo: labelsView.bottomAnchor)
|
labelViewBottomConstraint = labelButtonView.bottomAnchor.constraint(equalTo: labelsView.bottomAnchor)
|
||||||
|
|
||||||
labelButtonView.addSubview(buttonGroup)
|
labelButtonView.addSubview(buttonGroup)
|
||||||
buttonGroup
|
buttonGroup
|
||||||
.pinTrailing()
|
.pinTrailing()
|
||||||
buttonGroupBottomConstraint = labelButtonView.bottomAnchor.constraint(equalTo: buttonGroup.bottomAnchor)
|
labelButtonView.bottomAnchor.constraint(equalTo: buttonGroup.bottomAnchor).activate()
|
||||||
buttonGroupCenterYConstraint = buttonGroup.centerYAnchor.constraint(equalTo: labelButtonView.centerYAnchor)
|
|
||||||
labelViewAndButtonViewConstraint = buttonGroup.topAnchor.constraint(equalTo: labelsView.bottomAnchor, constant: VDSLayout.Spacing.space3X.value)
|
labelViewAndButtonViewConstraint = buttonGroup.topAnchor.constraint(equalTo: labelsView.bottomAnchor, constant: VDSLayout.Spacing.space3X.value)
|
||||||
buttonGroup.widthAnchor.constraint(equalTo: labelsView.widthAnchor).activate()
|
buttonGroup.widthAnchor.constraint(equalTo: labelsView.widthAnchor).activate()
|
||||||
|
|
||||||
@ -314,7 +276,6 @@ open class Notification: View {
|
|||||||
closeButton.size = UIDevice.isIPad ? .medium : .small
|
closeButton.size = UIDevice.isIPad ? .medium : .small
|
||||||
closeButton.name = .close
|
closeButton.name = .close
|
||||||
|
|
||||||
layout = .vertical
|
|
||||||
hideCloseButton = false
|
hideCloseButton = false
|
||||||
|
|
||||||
shouldUpdateView = true
|
shouldUpdateView = true
|
||||||
@ -393,32 +354,21 @@ open class Notification: View {
|
|||||||
secondaryButton.onClick = secondaryButtonModel.onClick
|
secondaryButton.onClick = secondaryButtonModel.onClick
|
||||||
buttons.append(secondaryButton)
|
buttons.append(secondaryButton)
|
||||||
}
|
}
|
||||||
labelViewWidthConstraint?.deactivate()
|
|
||||||
if buttons.isEmpty {
|
if buttons.isEmpty {
|
||||||
buttonGroup.isHidden = true
|
buttonGroup.isHidden = true
|
||||||
labelViewWidthConstraint = labelsView.widthAnchor.constraint(equalTo: labelButtonView.widthAnchor)
|
|
||||||
buttonGroup.buttons.removeAll()
|
buttonGroup.buttons.removeAll()
|
||||||
} else {
|
} else {
|
||||||
labelsView.setCustomSpacing(VDSLayout.Spacing.space3X.value, after: subTitleLabel)
|
labelsView.setCustomSpacing(VDSLayout.Spacing.space3X.value, after: subTitleLabel)
|
||||||
buttonGroup.buttons = buttons
|
buttonGroup.buttons = buttons
|
||||||
buttonGroup.isHidden = false
|
buttonGroup.isHidden = false
|
||||||
labelViewWidthConstraint = labelsView.widthAnchor.constraint(equalTo: labelButtonView.widthAnchor, multiplier: layout == .vertical ? 1.0 : 0.5, constant: layout == .vertical ? 0 : -labelButtonViewSpacing)
|
|
||||||
}
|
}
|
||||||
labelViewWidthConstraint?.activate()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private func setConstraints() {
|
private func setConstraints() {
|
||||||
maxWidthConstraint?.deactivate()
|
|
||||||
labelViewAndButtonViewConstraint?.deactivate()
|
labelViewAndButtonViewConstraint?.deactivate()
|
||||||
labelViewBottomConstraint?.deactivate()
|
labelViewBottomConstraint?.deactivate()
|
||||||
buttonGroupCenterYConstraint?.deactivate()
|
labelViewAndButtonViewConstraint?.isActive = !buttonGroup.buttons.isEmpty
|
||||||
buttonGroupBottomConstraint?.deactivate()
|
labelViewBottomConstraint?.isActive = buttonGroup.buttons.isEmpty
|
||||||
maxWidthConstraint?.constant = maxViewWidth
|
|
||||||
maxWidthConstraint?.isActive = UIDevice.isIPad
|
|
||||||
labelViewAndButtonViewConstraint?.isActive = layout == .vertical && !buttonGroup.buttons.isEmpty
|
|
||||||
labelViewBottomConstraint?.isActive = layout == .horizontal || buttonGroup.buttons.isEmpty
|
|
||||||
buttonGroupCenterYConstraint?.isActive = layout == .horizontal
|
|
||||||
buttonGroupBottomConstraint?.isActive = layout == .vertical
|
|
||||||
typeIconWidthConstraint?.constant = typeIcon.size.dimensions.width
|
typeIconWidthConstraint?.constant = typeIcon.size.dimensions.width
|
||||||
closeIconWidthConstraint?.constant = closeButton.size.dimensions.width
|
closeIconWidthConstraint?.constant = closeButton.size.dimensions.width
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user