Как можно реализовать прокрутку сообщений таким образом, чтобы всегда было видно последнее сообщение и пользователю не приходилось дергать скроллом вниз, чтобы его увидеть, но и если пользователь решит почитать старые сообщения, пролистав вверх, то его чат не перескакивал бы к новому сообщению, если бы оно пришло?
С первым я как-то почти справился, написав такую функцию:
const positioningScrollbar = (ref) => {
if (ref.current) {
ref.current.scrollTop = ref.current.scrollHeight
}
}
Использовав хук useRef(), повесив ref на контейнер с сообщениями и таким образом получив доступ к DOM элементу, но как справиться со вторым? Сейчас любое новое сообщение перетащит пользователя к себе, даже если он этого бы не хотел
Мой код на codesandbox.io
p.s.
Еще почему-то мой чатик показывает всегда предпоследнее сообщение а не последнее, тоже непонятно, что с этим делать, почему так происходит