diff --git a/Dockerfile b/Dockerfile index bccdf164..c5422604 100644 --- a/Dockerfile +++ b/Dockerfile @@ -8,6 +8,7 @@ RUN npm install -g pnpm@7.11.0 RUN npm install -g tailchat-cli@1.4.0 # Install plugins and sdk dependency +COPY ./tsconfig.json ./tsconfig.json COPY ./server/packages ./server/packages COPY ./server/plugins ./server/plugins COPY ./server/package.json ./server/package.json diff --git a/client/web/src/components/ChatBox/ChatMessageList/VirtualizedList.tsx b/client/web/src/components/ChatBox/ChatMessageList/VirtualizedList.tsx index b0f1d8eb..ed46f654 100644 --- a/client/web/src/components/ChatBox/ChatMessageList/VirtualizedList.tsx +++ b/client/web/src/components/ChatBox/ChatMessageList/VirtualizedList.tsx @@ -6,7 +6,12 @@ import { Virtuoso, VirtuosoHandle, } from 'react-virtuoso'; -import { ChatMessage, sharedEvent, useMemoizedFn } from 'tailchat-shared'; +import { + ChatMessage, + sharedEvent, + useMemoizedFn, + useSharedEventHandler, +} from 'tailchat-shared'; const PREPEND_OFFSET = 10 ** 7; @@ -23,21 +28,13 @@ export const VirtualizedMessageList: React.FC = React.memo( const listRef = useRef(null); const numItemsPrepended = usePrependedMessagesCount(props.messages); - useEffect(() => { - const onSendMessage = () => { - listRef.current?.scrollToIndex({ - index: 'LAST', - align: 'end', - behavior: 'smooth', - }); - }; - - sharedEvent.on('sendMessage', onSendMessage); - - return () => { - sharedEvent.off('sendMessage', onSendMessage); - }; - }, []); + useSharedEventHandler('sendMessage', () => { + listRef.current?.scrollToIndex({ + index: 'LAST', + align: 'end', + behavior: 'smooth', + }); + }); const handleLoadMore = useMemoizedFn(() => { if (props.isLoadingMore) {