From 032ddbbe2c1680be9dd349dcdffc242cb3234ead Mon Sep 17 00:00:00 2001 From: 777genius Date: Tue, 5 May 2026 09:15:52 +0300 Subject: [PATCH] fix(team): clear sent composer draft before paint --- .../components/team/messages/MessageComposer.tsx | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/renderer/components/team/messages/MessageComposer.tsx b/src/renderer/components/team/messages/MessageComposer.tsx index 24df1ab2..de98c4cf 100644 --- a/src/renderer/components/team/messages/MessageComposer.tsx +++ b/src/renderer/components/team/messages/MessageComposer.tsx @@ -1,4 +1,4 @@ -import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; +import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from 'react'; import { api } from '@renderer/api'; import { AttachmentPreviewList } from '@renderer/components/team/attachments/AttachmentPreviewList'; @@ -379,11 +379,14 @@ export const MessageComposer = ({ selectedTeam, draft.attachments, draft.chips, + draft.text, taskSuggestions, ]); - // Clear draft only after send completes successfully (sending: true → false, no error) - useEffect(() => { + // Clear draft only after send completes successfully (sending: true -> false, no error). + // Layout effect prevents a visible paint where the optimistic message is already in the list + // but the submitted text is still shown in the composer. + useLayoutEffect(() => { if (!sending && pendingSendRef.current) { pendingSendRef.current = false; if (!sendError && sendDebugDetails?.delivered !== false) {