         let topIndexPath = visibleIndexPaths.sorted().last
 
         screenSize = size
+        let shouldResetScrollToBottom = scrollToBottomButtonIsVisible
 
         coordinator.animate(alongsideTransition: { [weak self] _ in
             self?.viewSizingModel.clearCache()
             self?.collectionView.reloadData()
         }, completion: { [weak self] _ in
+            guard let self = self else {
+                return
+            }
+
+            if shouldResetScrollToBottom {
+                if self.scrollToBottomButtonIsVisible {
+                    self.scrollToBottomButtonIsVisible = false
+                    self.scrollToBottomButtonIsVisible = true
+                }
+            }
+
             if let indexPath = topIndexPath {
-                self?.collectionView.scrollToItem(at: indexPath, at: .bottom, animated: false)
+                self.collectionView.scrollToItem(at: indexPath, at: .bottom, animated: false)
             }
         })
     }

                frame.origin.x = collectionView.frame.width - buttonScrollToBottomSize - view.layoutMargins.right
                frame.origin.y = collectionView.frame.origin.y + collectionView.frame.height

                animates({
                    self.buttonScrollToBottom.frame = frame
                    self.buttonScrollToBottom.alpha = 0
                })
            }
        }

        didSet {
            guard oldValue != scrollToBottomButtonIsVisible
            else {
//                scrollToBottomButtonIsVisible = !scrollToBottomButtonIsVisible
                return
            }

            func animates(_ animations: @escaping VoidCompletion, _ completion: VoidCompletion? = nil) {
                UIView.animate(withDuration: 0.15, delay: 0, options: UIView.AnimationOptions(rawValue: 7 << 16), animations: {
                    animations()
                }, completion: nil)
            }

            if self.scrollToBottomButtonIsVisible {
//                if buttonScrollToBottom.superview == nil {
                    view.addSubview(buttonScrollToBottom)
//                }

                var frame = buttonScrollToBottom.frame
                frame.origin.x = collectionView.frame.width - buttonScrollToBottomSize - view.layoutMargins.right
