From 6567f3d84b7a045a24b3200635c58d3878c89e09 Mon Sep 17 00:00:00 2001 From: Ishaan Gupta Date: Thu, 2 Apr 2026 10:18:32 +0530 Subject: [PATCH] Optimize onboarding chat document creation with Promise.all --- .../onboarding/setup/chat-sidebar.tsx | 22 +++++++++---------- 1 file changed, 10 insertions(+), 12 deletions(-) diff --git a/apps/web/components/onboarding/setup/chat-sidebar.tsx b/apps/web/components/onboarding/setup/chat-sidebar.tsx index edeec1b5..022135d6 100644 --- a/apps/web/components/onboarding/setup/chat-sidebar.tsx +++ b/apps/web/components/onboarding/setup/chat-sidebar.tsx @@ -40,10 +40,6 @@ interface DraftDoc { } export function ChatSidebar({ formData }: ChatSidebarProps) { - const isValidDocId = ( - id: string | null | undefined, - ): id is string => !!id - const { user } = useAuth() const { selectedProject } = useProject() const isMobile = useIsMobile() @@ -385,11 +381,9 @@ export function ChatSidebar({ formData }: ChatSidebarProps) { setIsLoading(true) try { - const documentIds: string[] = [] - - for (const draft of draftDocs) { + const promises = draftDocs.map(async (draft) => { if (draft.kind === "x_research" && xResearchStatus !== "correct") { - continue + return null } try { @@ -401,13 +395,17 @@ export function ChatSidebar({ formData }: ChatSidebarProps) { }, }) - if (isValidDocId(docResponse.data?.id)) { - documentIds.push(docResponse.data.id) - } + return docResponse.data?.id } catch (error) { console.warn("Error creating document:", error) + return null } - } + }) + + const results = await Promise.all(promises) + const documentIds = results.filter( + (id): id is string => id !== null && id !== undefined, + ) if (documentIds.length > 0) { await pollForMemories(documentIds)