Anchor scroll to bottom when switching channels.

This commit is contained in:
Paul
2021-08-08 23:01:47 +01:00
parent a2c58e4e00
commit d2f0532344
3 changed files with 19 additions and 2 deletions

View File

@@ -173,7 +173,16 @@ export const MessageArea = observer(({ channel }: Props) => {
if (message) return;
if (renderer.state === "RENDER") {
runInAction(() => (renderer.fetching = true));
setScrollState({ type: "ScrollTop", y: renderer.scrollPosition });
console.log(renderer.scrollAnchored);
if (renderer.scrollAnchored) {
setScrollState({ type: "ScrollToBottom" });
} else {
setScrollState({
type: "ScrollTop",
y: renderer.scrollPosition,
});
}
} else {
renderer.init();
}
@@ -254,6 +263,12 @@ export const MessageArea = observer(({ channel }: Props) => {
if (atBottom(100)) {
renderer.loadBottom(current!);
}
if (atBottom()) {
renderer.scrollAnchored = true;
} else {
renderer.scrollAnchored = false;
}
}
current.addEventListener("scroll", onScroll);