📜 refactor: Enhance Auto Scroll Speed and UseEffect Cleanup (#1591)

This commit is contained in:
Danny Avila 2024-01-18 21:25:57 -05:00 committed by GitHub
parent a7c54573c4
commit 83292a47a7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 10 additions and 4 deletions

View file

@ -1,5 +1,5 @@
import copy from 'copy-to-clipboard';
import { useEffect, useRef } from 'react';
import { useEffect, useRef, useCallback } from 'react';
import { useGetEndpointsQuery } from 'librechat-data-provider/react-query';
import type { TMessage } from 'librechat-data-provider';
import type { TMessageProps } from '~/common';
@ -43,13 +43,13 @@ export default function useMessageHelpers(props: TMessageProps) {
const enterEdit = (cancel?: boolean) =>
setCurrentEditId && setCurrentEditId(cancel ? -1 : messageId);
const handleScroll = () => {
const handleScroll = useCallback(() => {
if (isSubmitting) {
setAbortScroll(true);
} else {
setAbortScroll(false);
}
};
}, [isSubmitting, setAbortScroll]);
const icon = Icon({
...conversation,

View file

@ -63,6 +63,12 @@ export default function useMessageScrolling(messagesTree?: TMessage[] | null) {
if (isSubmitting && scrollToBottom && !abortScroll) {
scrollToBottom();
}
return () => {
if (abortScroll) {
scrollToBottom && scrollToBottom?.cancel();
}
};
}, [isSubmitting, messagesTree, scrollToBottom, abortScroll]);
useEffect(() => {

View file

@ -17,7 +17,7 @@ export default function useScrollToRef({ targetRef, callback, smoothCallback }:
// eslint-disable-next-line react-hooks/exhaustive-deps
const scrollToRef = useCallback(
throttle(() => logAndScroll('instant', callback), 450, { leading: true }),
throttle(() => logAndScroll('instant', callback), 250, { leading: true }),
[targetRef],
);