chat_layout_utils.js (925B)
- // Captures a scroll position
- export const getScrollPosition = () => {
- return {
- scrollTop: window.scrollY,
- scrollHeight: document.documentElement.scrollHeight,
- offsetHeight: window.innerHeight
- }
- }
- // A helper function that is used to keep the scroll position fixed as the new elements are added to the top
- // Takes two scroll positions, before and after the update.
- export const getNewTopPosition = (previousPosition, newPosition) => {
- return previousPosition.scrollTop + (newPosition.scrollHeight - previousPosition.scrollHeight)
- }
- export const isBottomedOut = (offset = 0) => {
- const scrollHeight = window.scrollY + offset
- const totalHeight = document.documentElement.scrollHeight - window.innerHeight
- return totalHeight <= scrollHeight
- }
- // Returns whether or not the scrollbar is visible.
- export const isScrollable = () => {
- return document.documentElement.scrollHeight > window.innerHeight
- }