refactored out old code and reorganized

Signed-off-by: Matt Bruce <matt.bruce@verizon.com>
This commit is contained in:
Matt Bruce 2024-06-21 14:43:55 -05:00
parent 7770a49f6f
commit beaa2b3a82

View File

@ -31,6 +31,14 @@ open class DatePicker: EntryFieldBase {
// MARK: - Private Properties
//--------------------------------------------------
internal var minWidthDefault = 186.0
internal var popoverView: UIView!
internal var popoverVisible = false
internal var outsideTapGesture: UITapGestureRecognizer?
internal var outsidePanGesture: UIPanGestureRecognizer?
internal var overlayView = UIView().with {
$0.backgroundColor = .clear;
$0.isHidden = true
}
internal var bottomStackView: UIStackView = {
return UIStackView().with {
@ -109,8 +117,8 @@ open class DatePicker: EntryFieldBase {
.publisher(for: UITapGestureRecognizer())
.sink { [weak self] _ in
guard let self else { return }
if self.isEnabled && !self.isReadOnly {
self.togglePicker()
if isEnabled && !isReadOnly {
showPopover()
}
}
.store(in: &subscribers)
@ -118,9 +126,6 @@ open class DatePicker: EntryFieldBase {
NotificationCenter.default
.publisher(for: UIDevice.orientationDidChangeNotification).sink { [weak self] _ in
guard let self else { return }
popoverController?.dismiss(animated: true){ [weak self] in
guard let self else { return }
}
hidePopoverView()
}
.store(in: &subscribers)
@ -175,49 +180,11 @@ open class DatePicker: EntryFieldBase {
popoverController = nil
}
}
private var overlayView = UIView().with {
$0.backgroundColor = .clear;
$0.isHidden = true
}
private var popoverView: UIView!
private var popoverVisible = false
private var outsideTapGesture: UITapGestureRecognizer?
private var outsidePanGesture: UIPanGestureRecognizer?
// internal func togglePicker() {
// calendar.activeDates = calendarModel.activeDates
// calendar.hideContainerBorder = calendarModel.hideContainerBorder
// calendar.hideCurrentDateIndicator = calendarModel.hideCurrentDateIndicator
// calendar.inactiveDates = calendarModel.inactiveDates
// calendar.indicators = calendarModel.indicators
// calendar.maxDate = calendarModel.maxDate
// calendar.minDate = calendarModel.minDate
// calendar.surface = calendarModel.surface
// calendar.setNeedsLayout()
// calendar.layoutIfNeeded()
// calendar.onChange = { [weak self] control in
// guard let self else { return }
// didSelect(control.selectedDate)
// }
//
// popoverController = ClearPopoverViewController(contentView: calendar,
// arrow: .any,
// sourceView: containerView,
// sourceRect: .init(x: 0, y: 0, width: 320, height: 45),
// spacing: VDSLayout.space1X)
// popoverController?.maxWidth = 320
// if let viewController = UIApplication.topViewController(), let popoverController {
// viewController.present(popoverController,
// animated: true,
// completion: nil)
// }
// }
}
extension DatePicker {
private func togglePicker() {
private func showPopover() {
guard let viewController = UIApplication.topViewController(), let parentView = viewController.view else { return }
if popoverVisible {
@ -286,7 +253,12 @@ extension DatePicker {
popoverView.isHidden = false
popoverVisible = true
UIView.animate(withDuration: 0.3, delay: 0, usingSpringWithDamping: 0.8, initialSpringVelocity: 0.2, options: .curveEaseOut, animations: { [weak self] in
UIView.animate(withDuration: 0.3,
delay: 0,
usingSpringWithDamping: 0.8,
initialSpringVelocity: 0.2,
options: .curveEaseOut,
animations: { [weak self] in
guard let self else { return }
popoverView.alpha = 1
popoverView.transform = CGAffineTransform.identity
@ -301,13 +273,16 @@ extension DatePicker {
outsideTapGesture = nil
outsidePanGesture = nil
UIView.animate(withDuration: 0.2, animations: {
self.popoverView.alpha = 0
self.popoverView.transform = CGAffineTransform(scaleX: 0.9, y: 0.9)
}) { _ in
self.popoverView.isHidden = true
self.popoverView.removeFromSuperview()
self.popoverVisible = false
UIView.animate(withDuration: 0.2,
animations: {[weak self] in
guard let self else { return }
popoverView.alpha = 0
popoverView.transform = CGAffineTransform(scaleX: 0.9, y: 0.9)
}) { [weak self] _ in
guard let self else { return }
popoverView.isHidden = true
popoverView.removeFromSuperview()
popoverVisible = false
}
}