refactor(chat): remove status transition effect

This commit is contained in:
Bohdan Triapitsyn
2025-12-19 16:15:14 +02:00
parent f772000d88
commit 0a3592a452
@@ -26,14 +26,14 @@ export function WorkingPlaceholder({
const [isVisible, setIsVisible] = useState<boolean>(false); const [isVisible, setIsVisible] = useState<boolean>(false);
const [isFadingOut, setIsFadingOut] = useState<boolean>(false); const [isFadingOut, setIsFadingOut] = useState<boolean>(false);
const [resultState, setResultState] = useState<ResultState>(null); const [resultState, setResultState] = useState<ResultState>(null);
const [isTransitioning, setIsTransitioning] = useState<boolean>(false);
const displayStartTimeRef = useRef<number>(0); const displayStartTimeRef = useRef<number>(0);
const statusQueueRef = useRef<Array<{ status: string; permission: boolean }>>([]); const statusQueueRef = useRef<Array<{ status: string; permission: boolean }>>([]);
const removalPendingRef = useRef<boolean>(false); const removalPendingRef = useRef<boolean>(false);
const fadeTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null); const fadeTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
const resultTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null); const resultTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
const transitionTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);
const rafIdRef = useRef<number | null>(null); const rafIdRef = useRef<number | null>(null);
const lastCheckTimeRef = useRef<number>(0); const lastCheckTimeRef = useRef<number>(0);
const lastActiveStatusRef = useRef<string | null>(null); const lastActiveStatusRef = useRef<string | null>(null);
@@ -53,17 +53,11 @@ export function WorkingPlaceholder({
clearTimeout(resultTimeoutRef.current); clearTimeout(resultTimeoutRef.current);
resultTimeoutRef.current = null; resultTimeoutRef.current = null;
} }
if (transitionTimeoutRef.current) {
clearTimeout(transitionTimeoutRef.current);
transitionTimeoutRef.current = null;
}
if (status === 'aborted') { if (status === 'aborted') {
setDisplayedStatus(null); setDisplayedStatus(null);
setDisplayedPermission(false); setDisplayedPermission(false);
setIsFadingOut(false); setIsFadingOut(false);
setResultState('aborted'); setResultState('aborted');
setIsTransitioning(false);
lastActiveStatusRef.current = 'aborted'; lastActiveStatusRef.current = 'aborted';
hasShownActivityRef.current = true; hasShownActivityRef.current = true;
wasAbortedRef.current = true; wasAbortedRef.current = true;
@@ -82,17 +76,6 @@ export function WorkingPlaceholder({
lastActiveStatusRef.current = status; lastActiveStatusRef.current = status;
hasShownActivityRef.current = true; hasShownActivityRef.current = true;
const isStatusChanging = displayedStatus !== null && displayedStatus !== status;
if (isStatusChanging) {
setIsTransitioning(true);
transitionTimeoutRef.current = setTimeout(() => {
setIsTransitioning(false);
transitionTimeoutRef.current = null;
}, 150);
}
setDisplayedStatus(status); setDisplayedStatus(status);
setDisplayedPermission(permission); setDisplayedPermission(permission);
@@ -168,8 +151,6 @@ export function WorkingPlaceholder({
setResultState(result); setResultState(result);
lastActiveStatusRef.current = null; lastActiveStatusRef.current = null;
setIsTransitioning(false);
if (result === 'success' && completionId) { if (result === 'success' && completionId) {
lastCompletionShownRef.current = completionId; lastCompletionShownRef.current = completionId;
} }
@@ -327,9 +308,6 @@ export function WorkingPlaceholder({
if (resultTimeoutRef.current) { if (resultTimeoutRef.current) {
clearTimeout(resultTimeoutRef.current); clearTimeout(resultTimeoutRef.current);
} }
if (transitionTimeoutRef.current) {
clearTimeout(transitionTimeoutRef.current);
}
}; };
}, []); }, []);
@@ -425,8 +403,7 @@ export function WorkingPlaceholder({
{resultState === null && ( {resultState === null && (
<Text <Text
variant="shine" variant="shine"
className="typography-ui-header transition-opacity duration-150" className="typography-ui-header"
style={{ opacity: isTransitioning ? 0.6 : 1 }}
> >
{displayText} {displayText}
</Text> </Text>
@@ -434,8 +411,7 @@ export function WorkingPlaceholder({
{resultState === 'success' && ( {resultState === 'success' && (
<Text <Text
variant="hover-enter" variant="hover-enter"
className="typography-ui-header transition-opacity duration-150" className="typography-ui-header"
style={{ opacity: isTransitioning ? 0.6 : 1 }}
> >
Done Done
</Text> </Text>
@@ -443,8 +419,7 @@ export function WorkingPlaceholder({
{resultState === 'aborted' && ( {resultState === 'aborted' && (
<Text <Text
variant="hover-enter" variant="hover-enter"
className="typography-ui-header transition-opacity duration-150 text-status-error" className="typography-ui-header text-status-error"
style={{ opacity: isTransitioning ? 0.6 : 1 }}
> >
Aborted Aborted
</Text> </Text>