text: export function scrollTopFor(y) {
    return y - offsetCalculator();
  }
  
  export function minimumOffset() {
    const $header = $("header.d-header");
    const headerHeight = $header.outerHeight(true) || 0;
    const headerPositionTop = $header.position().top;
    return headerHeight + headerPositionTop;
  }
  
  export default function offsetCalculator() {
    const min = minimumOffset();
  
    // on mobile, just use the header
    if ($("html").hasClass("mobile-view")) return min;
  
    const $window = $(window);
    const windowHeight = $window.height();
    const documentHeight = $(document).height();
    const topicBottomOffsetTop = $("#topic-bottom").offset().top;
  
    // the footer is bigger than the window, we can scroll down past the last post
    if (documentHeight - windowHeight > topicBottomOffsetTop) return min;
  
    const scrollTop = $window.scrollTop();
    const visibleBottomHeight = scrollTop + windowHeight - topicBottomOffsetTop;
  
    if (visibleBottomHeight > 0) {
      const bottomHeight = documentHeight - topicBottomOffsetTop;
      const offset =
        ((windowHeight - bottomHeight) * visibleBottomHeight) / bottomHeight;
      return Math.max(min, offset);
    }
  
    return min;
  }
  