refactor(chat): remove status transition effect
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user