11'use client'
22
3- import { useEffect , useRef , useState } from 'react'
3+ import { useCallback , useRef , useState } from 'react'
44import { ArrowUp , ChevronDown , ChevronRight , Paperclip , Pencil , Trash2 } from 'lucide-react'
55import { Tooltip } from '@/components/emcn'
66import { UserMessageContent } from '@/app/workspace/[workspaceId]/home/components/user-message-content'
@@ -17,22 +17,23 @@ interface QueuedMessagesProps {
1717
1818export function QueuedMessages ( { messageQueue, onRemove, onSendNow, onEdit } : QueuedMessagesProps ) {
1919 const [ isExpanded , setIsExpanded ] = useState ( true )
20- const containerRef = useRef < HTMLDivElement > ( null )
2120 const [ isNarrow , setIsNarrow ] = useState ( false )
21+ const roRef = useRef < ResizeObserver | null > ( null )
2222
23- const hasMessages = messageQueue . length > 0
24-
25- useEffect ( ( ) => {
26- const el = containerRef . current
23+ const containerRef = useCallback ( ( el : HTMLDivElement | null ) => {
24+ if ( roRef . current ) {
25+ roRef . current . disconnect ( )
26+ roRef . current = null
27+ }
2728 if ( ! el ) return
2829 const ro = new ResizeObserver ( ( entries ) => {
2930 setIsNarrow ( entries [ 0 ] . contentRect . width < NARROW_WIDTH_PX )
3031 } )
3132 ro . observe ( el )
32- return ( ) => ro . disconnect ( )
33- } , [ hasMessages ] )
33+ roRef . current = ro
34+ } , [ ] )
3435
35- if ( ! hasMessages ) return null
36+ if ( messageQueue . length === 0 ) return null
3637
3738 return (
3839 < div
@@ -70,7 +71,7 @@ export function QueuedMessages({ messageQueue, onRemove, onSendNow, onEdit }: Qu
7071 content = { msg . content }
7172 contexts = { msg . contexts }
7273 plainMentions
73- className = '!truncate !whitespace-nowrap !text-small !leading-[20px]'
74+ compact
7475 />
7576 </ div >
7677
0 commit comments