From 28f4de5429dea48776b90c74a42dd8aeb7a4de68 Mon Sep 17 00:00:00 2001 From: Samuel Newman Date: Mon, 23 Mar 2026 09:19:57 -0700 Subject: [PATCH] Fix report dialog flashing error state on open (#10099) (cherry picked from commit f08bf5fef968bd5e9b72f206781de75f44774742) --- src/components/hooks/useDelayedLoading.ts | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/src/components/hooks/useDelayedLoading.ts b/src/components/hooks/useDelayedLoading.ts index 895c62a5db..512f31f771 100644 --- a/src/components/hooks/useDelayedLoading.ts +++ b/src/components/hooks/useDelayedLoading.ts @@ -1,15 +1,14 @@ import {useEffect, useState} from 'react' -export function useDelayedLoading(delay: number, initialState: boolean = true) { - const [isLoading, setIsLoading] = useState(initialState) +export function useDelayedLoading(delay: number, isActuallyLoading: boolean) { + const [isDelayActive, setIsDelayActive] = useState(isActuallyLoading) useEffect(() => { - let timeout: NodeJS.Timeout - // on initial load, show a loading spinner for a hot sec to prevent flash - if (isLoading) timeout = setTimeout(() => setIsLoading(false), delay) + if (!isDelayActive) return - return () => timeout && clearTimeout(timeout) - }, [isLoading, delay]) + const timeout = setTimeout(() => setIsDelayActive(false), delay) + return () => clearTimeout(timeout) + }, [isDelayActive, delay]) - return isLoading + return isDelayActive || isActuallyLoading }