class ScreenScroller { | |
constructor() { | |
this.is_user_scrolling = false; | |
} | |
bind() { | |
let self = this; | |
$("#chat-session-container").on("wheel touchmove", function () { | |
if ($("#send-user-input").attr("status") === "stop") { | |
self.set_user_scrolling(true); | |
} | |
}); | |
} | |
get_user_scrolling() { | |
return this.is_user_scrolling; | |
} | |
set_user_scrolling(val = true) { | |
this.is_user_scrolling = val; | |
} | |
scroll_to_bottom(animate = false) { | |
if (this.get_user_scrolling()) { | |
return; | |
} | |
if (animate) { | |
$("#chat-session-container").animate( | |
{ | |
scrollTop: $("#chat-session-container").prop( | |
"scrollHeight" | |
), | |
}, | |
500 | |
); | |
} else { | |
$("#chat-session-container").prop( | |
"scrollTop", | |
$("#chat-session-container").prop("scrollHeight") | |
); | |
} | |
} | |
} | |
export let screen_scroller = new ScreenScroller(); | |
screen_scroller.bind(); | |