         isScrollInProgress = true
         var point = point
         if scrollDirection == .horizontal { point.x += extraAddedOffset } else { point.y += extraAddedOffset }
-        setContentOffset(point, animated: isAnimationEnabled)
-        isScrollInProgress = false
+        DispatchQueue.main.async {
+            self.setContentOffset(point, animated: isAnimationEnabled)
+            self.isScrollInProgress = false
+        }
     }
     
     func scrollTo(rect: CGRect,

                         completionHandler: completionHandler)
            }
        }
        
        // Jt101 put this into a function to reduce code between
        // this and the scroll to header function
        if !isAnimationEnabled {
            self.scrollViewDidEndScrollingAnimation(self)
        }
        self.isScrollInProgress = false
    }
    
    func scrollTo(point: CGPoint, triggerScrollToDateDelegate: Bool? = nil, isAnimationEnabled: Bool, extraAddedOffset: CGFloat, completionHandler: (() -> Void)?) {

                                        extraAddedOffset: extraAddedOffset,
                                        completionHandler: completionHandler)
            } else {
                scrollTo(indexPath:validIndexPath,
                         isAnimationEnabled: isAnimationEnabled,
                         position: position ?? .left,
