refactor: improve callback ref

pull/220/head
moonrailgun 1 year ago
parent a36ca7c4e1
commit f27ff4624a

@ -1,5 +1,5 @@
import React, { useCallback, useEffect, useRef, useState } from 'react'; import React, { useCallback, useEffect, useRef, useState } from 'react';
import { useMemoizedFn, useSharedEventHandler } from 'tailchat-shared'; import { useEvent, useSharedEventHandler } from 'tailchat-shared';
import { ChatMessageHeader } from './ChatMessageHeader'; import { ChatMessageHeader } from './ChatMessageHeader';
import { buildMessageItemRow } from './Item'; import { buildMessageItemRow } from './Item';
import { ScrollToBottom } from './ScrollToBottom'; import { ScrollToBottom } from './ScrollToBottom';
@ -21,7 +21,7 @@ export const NormalMessageList: React.FC<MessageListProps> = React.memo(
const lockRef = useRef(false); const lockRef = useRef(false);
const [showScrollToBottom, setShowScrollToBottom] = useState(false); const [showScrollToBottom, setShowScrollToBottom] = useState(false);
const scrollToBottom = useMemoizedFn(() => { const scrollToBottom = useEvent(() => {
containerRef.current?.scrollTo({ top: 0, behavior: 'smooth' }); containerRef.current?.scrollTo({ top: 0, behavior: 'smooth' });
}); });
@ -38,7 +38,7 @@ export const NormalMessageList: React.FC<MessageListProps> = React.memo(
useSharedEventHandler('sendMessage', scrollToBottom); useSharedEventHandler('sendMessage', scrollToBottom);
const handleScroll = useCallback(() => { const handleScroll = useEvent(() => {
if (props.messages.length === 0) { if (props.messages.length === 0) {
return; return;
} }
@ -63,7 +63,7 @@ export const NormalMessageList: React.FC<MessageListProps> = React.memo(
lockRef.current = true; lockRef.current = true;
setShowScrollToBottom(true); setShowScrollToBottom(true);
} }
}, [props.messages]); });
return ( return (
<div <div

Loading…
Cancel
Save