         currentLotView = LiveAuctionCurrentLotView(viewModel: salesPerson.auctionViewModel.currentLotSignal, salesPerson: salesPerson)
         currentLotView.addTarget(nil, action: #selector(LiveAuctionLotSetViewController.jumpToLiveLot), for: .touchUpInside)
         view.addSubview(currentLotView)
-        currentLotView.alignBottom("-5", trailing: "-5", toView: view)
+        jumpToCurrentLotCTABottomConstraint = currentLotView.alignBottomEdge(withView: view, predicate: "-5")
         currentLotView.alignLeadingEdge(withView: view, predicate: "5")
-        currentLotView.isHidden = true
+        currentLotView.alignTrailingEdge(withView: view, predicate: "-5")
 
         salesPerson.currentFocusedLotIndex.subscribe { [weak self] _ in
             self?.lotImageCollectionView.reloadData()

    // When the user scrolls.
    func scrollViewDidScroll(_ scrollView: UIScrollView) {
        lotImageCollectionView.setContentOffset(scrollView.contentOffset, animated: false)
    }

    // When we scroll programmatically with/out animation.

    var hasJumpedToOpenLotAtLaunch = false
    var suppressJumpingToOpenLots = false

    func hasChangedLot(_ lot: LiveAuctionLotViewModelType?) {
        guard let newLot = lot, let newLotIndex = salesPerson.indexForViewModel(newLot) else { return }
        guard !suppressJumpingToOpenLots else { return }
