@@ -21,6 +21,7 @@ import { Text } from "components/ui/Text";
21
21
22
22
import { useBuilderAssistCreateConnectorMutation } from "core/api" ;
23
23
import { DeclarativeComponentSchema , DeclarativeStream } from "core/api/types/ConnectorManifest" ;
24
+ import { useDebounceValue } from "core/utils/useDebounceValue" ;
24
25
import { ConnectorBuilderLocalStorageProvider } from "services/connectorBuilder/ConnectorBuilderLocalStorageService" ;
25
26
import { ConnectorBuilderFormManagementStateProvider } from "services/connectorBuilder/ConnectorBuilderStateService" ;
26
27
@@ -37,9 +38,14 @@ interface GeneratorFormResponse {
37
38
}
38
39
39
40
const ConnectorBuilderGeneratePageInner : React . FC = ( ) => {
40
- const { createAndNavigate, isLoading } = useCreateAndNavigate ( ) ;
41
+ const { createAndNavigate, isLoading : isCreateLoading } = useCreateAndNavigate ( ) ;
41
42
const { mutateAsync : getAssistValues , isLoading : isAssistLoading } = useBuilderAssistCreateConnectorMutation ( ) ;
42
43
44
+ // Ensure we don't show the loading spinner too early
45
+ const isLoading = isCreateLoading || isAssistLoading ;
46
+ const debounceTime = isLoading ? 500 : 0 ;
47
+ const isLoadingWithDelay = useDebounceValue ( isCreateLoading || isAssistLoading , debounceTime ) ;
48
+
43
49
// These are stored to ensure we persist form values even if the user skips the assist
44
50
const [ submittedAssistValues , setSubmittedAssistValues ] = useState < GeneratorFormResponse | null > ( null ) ;
45
51
const projectName = submittedAssistValues ?. name || DEFAULT_CONNECTOR_NAME ;
@@ -88,10 +94,10 @@ const ConnectorBuilderGeneratePageInner: React.FC = () => {
88
94
return (
89
95
< FlexContainer direction = "column" gap = "2xl" className = { styles . container } >
90
96
< AirbyteTitle title = { < FormattedMessage id = "connectorBuilder.generatePage.prompt" /> } />
91
- { isAssistLoading ? (
97
+ { isLoadingWithDelay ? (
92
98
< AssistWaiting onSkip = { onSkip } />
93
99
) : (
94
- < ConnectorBuilderGenerateForm isLoading = { isLoading } onSubmit = { onFormSubmit } onCancel = { onCancel } />
100
+ < ConnectorBuilderGenerateForm isLoading = { isCreateLoading } onSubmit = { onFormSubmit } onCancel = { onCancel } />
95
101
) }
96
102
</ FlexContainer >
97
103
) ;
0 commit comments