From 0a3592a4527c2ecda0c1f59ca5442e3f0239b181 Mon Sep 17 00:00:00 2001 From: Bohdan Triapitsyn Date: Fri, 19 Dec 2025 16:15:14 +0200 Subject: [PATCH] refactor(chat): remove status transition effect --- .../chat/message/parts/WorkingPlaceholder.tsx | 35 +++---------------- 1 file changed, 5 insertions(+), 30 deletions(-) diff --git a/packages/ui/src/components/chat/message/parts/WorkingPlaceholder.tsx b/packages/ui/src/components/chat/message/parts/WorkingPlaceholder.tsx index 800911f7..1b67f41b 100644 --- a/packages/ui/src/components/chat/message/parts/WorkingPlaceholder.tsx +++ b/packages/ui/src/components/chat/message/parts/WorkingPlaceholder.tsx @@ -26,14 +26,14 @@ export function WorkingPlaceholder({ const [isVisible, setIsVisible] = useState(false); const [isFadingOut, setIsFadingOut] = useState(false); const [resultState, setResultState] = useState(null); - const [isTransitioning, setIsTransitioning] = useState(false); + const displayStartTimeRef = useRef(0); const statusQueueRef = useRef>([]); const removalPendingRef = useRef(false); const fadeTimeoutRef = useRef | null>(null); const resultTimeoutRef = useRef | null>(null); - const transitionTimeoutRef = useRef | null>(null); + const rafIdRef = useRef(null); const lastCheckTimeRef = useRef(0); const lastActiveStatusRef = useRef(null); @@ -53,17 +53,11 @@ export function WorkingPlaceholder({ clearTimeout(resultTimeoutRef.current); resultTimeoutRef.current = null; } - if (transitionTimeoutRef.current) { - clearTimeout(transitionTimeoutRef.current); - transitionTimeoutRef.current = null; - } - if (status === 'aborted') { setDisplayedStatus(null); setDisplayedPermission(false); setIsFadingOut(false); setResultState('aborted'); - setIsTransitioning(false); lastActiveStatusRef.current = 'aborted'; hasShownActivityRef.current = true; wasAbortedRef.current = true; @@ -82,17 +76,6 @@ export function WorkingPlaceholder({ lastActiveStatusRef.current = status; hasShownActivityRef.current = true; - const isStatusChanging = displayedStatus !== null && displayedStatus !== status; - - if (isStatusChanging) { - - setIsTransitioning(true); - transitionTimeoutRef.current = setTimeout(() => { - setIsTransitioning(false); - transitionTimeoutRef.current = null; - }, 150); - } - setDisplayedStatus(status); setDisplayedPermission(permission); @@ -168,8 +151,6 @@ export function WorkingPlaceholder({ setResultState(result); lastActiveStatusRef.current = null; - setIsTransitioning(false); - if (result === 'success' && completionId) { lastCompletionShownRef.current = completionId; } @@ -327,9 +308,6 @@ export function WorkingPlaceholder({ if (resultTimeoutRef.current) { clearTimeout(resultTimeoutRef.current); } - if (transitionTimeoutRef.current) { - clearTimeout(transitionTimeoutRef.current); - } }; }, []); @@ -425,8 +403,7 @@ export function WorkingPlaceholder({ {resultState === null && ( {displayText} @@ -434,8 +411,7 @@ export function WorkingPlaceholder({ {resultState === 'success' && ( Done @@ -443,8 +419,7 @@ export function WorkingPlaceholder({ {resultState === 'aborted' && ( Aborted