stopDrag()

in client/src/components/scroll-list/scroll-list.ts [221:249]


  stopDrag() {
    if(!this.dragInfo) {
      return;
    }
    if(this.dragInfo.interval) {
      clearInterval(this.dragInfo.interval);
    }
    if(!this.snappingEnabled) {
      if(this.isDragging) {
        const velocity = this.dragInfo.velocityX;
        this.dragInfo = null;
        const decelerationInfo = { velocity: velocity, prevTime: ScrollListComponent.getTime() };
        this.animationInterval = setInterval(() => this.updateDeceleration(decelerationInfo), this.config.animationInterval);
      } else {
        this.dragInfo = null;
      }
    } else if (this.isDragging) {
      const velocity = this.dragInfo.velocityX;
      this.dragInfo = null;
      const snapItemIndex = this.getEndingSnapItemIndex(this.getScrollPosition(), velocity);
      this.scrollToItem(snapItemIndex, velocity, true);
    } else {
      const itemIndex = this.getItemIndexFromPosition(this.dragInfo.lastClientX, this.dragInfo.lastClientY);
      this.dragInfo = null;
      if(itemIndex >= 0 && this.items && itemIndex < this.items.length) {
        this.scrollToItem(itemIndex, 0, true);
      }
    }
  }