Skip to content

Commit 84ad165

Browse files
committed
fix(mothership): replace updater side-effect with useEffect ref sync, move sendMessageRef to useLayoutEffect
1 parent 7456c3c commit 84ad165

File tree

1 file changed

+8
-13
lines changed
  • apps/sim/app/workspace/[workspaceId]/home/hooks

1 file changed

+8
-13
lines changed

apps/sim/app/workspace/[workspaceId]/home/hooks/use-chat.ts

Lines changed: 8 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { useCallback, useEffect, useRef, useState } from 'react'
1+
import { useCallback, useEffect, useLayoutEffect, useRef, useState } from 'react'
22
import { createLogger } from '@sim/logger'
33
import { useQueryClient } from '@tanstack/react-query'
44
import { usePathname } from 'next/navigation'
@@ -261,18 +261,11 @@ export function useChat(
261261
const activeResourceIdRef = useRef(activeResourceId)
262262
activeResourceIdRef.current = activeResourceId
263263

264-
const [messageQueue, setMessageQueueRaw] = useState<QueuedMessage[]>([])
264+
const [messageQueue, setMessageQueue] = useState<QueuedMessage[]>([])
265265
const messageQueueRef = useRef<QueuedMessage[]>([])
266-
const setMessageQueue = useCallback(
267-
(update: QueuedMessage[] | ((prev: QueuedMessage[]) => QueuedMessage[])) => {
268-
setMessageQueueRaw((prev) => {
269-
const next = typeof update === 'function' ? update(prev) : update
270-
messageQueueRef.current = next
271-
return next
272-
})
273-
},
274-
[]
275-
)
266+
useEffect(() => {
267+
messageQueueRef.current = messageQueue
268+
}, [messageQueue])
276269

277270
const sendMessageRef = useRef<UseChatReturn['sendMessage']>(async () => {})
278271

@@ -921,7 +914,9 @@ export function useChat(
921914
},
922915
[workspaceId, queryClient, processSSEStream, finalize]
923916
)
924-
sendMessageRef.current = sendMessage
917+
useLayoutEffect(() => {
918+
sendMessageRef.current = sendMessage
919+
})
925920

926921
const stopGeneration = useCallback(async () => {
927922
if (sendingRef.current) {

0 commit comments

Comments
 (0)