Skip to content

Commit 5241ff6

Browse files
committed
fix(workflows): show errors when workflow imports fail
1 parent e62e93e commit 5241ff6

1 file changed

Lines changed: 17 additions & 8 deletions

File tree

apps/sim/app/workspace/[workspaceId]/w/hooks/use-import-workflow.ts

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
import { useCallback, useRef, useState } from 'react'
2+
import { toast } from '@sim/emcn'
23
import { createLogger } from '@sim/logger'
4+
import { getErrorMessage } from '@sim/utils/errors'
35
import { useQueryClient } from '@tanstack/react-query'
46
import { useRouter } from 'next/navigation'
57
import { usePostHog } from 'posthog-js/react'
@@ -34,9 +36,9 @@ interface UseImportWorkflowProps {
3436
*/
3537
export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {
3638
const router = useRouter()
37-
const createWorkflowMutation = useCreateWorkflow()
39+
const { mutateAsync: createWorkflow } = useCreateWorkflow()
3840
const queryClient = useQueryClient()
39-
const createFolderMutation = useCreateFolder()
41+
const { mutateAsync: createFolder } = useCreateFolder()
4042
const clearDiff = useWorkflowDiffStore((state) => state.clearDiff)
4143
const posthog = usePostHog()
4244
const posthogRef = useRef(posthog)
@@ -56,7 +58,7 @@ export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {
5658
folderId,
5759
sortOrder,
5860
createWorkflow: async ({ name, description, workspaceId, folderId, sortOrder }) =>
59-
createWorkflowMutation.mutateAsync({
61+
createWorkflow({
6062
name,
6163
description,
6264
workspaceId,
@@ -68,7 +70,7 @@ export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {
6870

6971
return result?.workflowId ?? null
7072
},
71-
[clearDiff, createWorkflowMutation, workspaceId]
73+
[clearDiff, createWorkflow, workspaceId]
7274
)
7375

7476
/**
@@ -92,7 +94,7 @@ export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {
9294
const { workflows: extractedWorkflows, metadata } = await extractWorkflowsFromZip(zipFile)
9395

9496
const folderName = metadata?.workspaceName || zipFile.name.replace(/\.zip$/i, '')
95-
const importFolder = await createFolderMutation.mutateAsync({
97+
const importFolder = await createFolder({
9698
name: folderName,
9799
workspaceId,
98100
})
@@ -131,7 +133,7 @@ export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {
131133
parentId = await createFolderRecursive(foldersById.get(folder.parentId)!)
132134
}
133135

134-
const newFolder = await createFolderMutation.mutateAsync({
136+
const newFolder = await createFolder({
135137
name: folder.name,
136138
workspaceId,
137139
parentId,
@@ -163,7 +165,7 @@ export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {
163165
const folderNameForSegment = workflow.folderPath[i]
164166

165167
if (!folderMap.has(pathSegment)) {
166-
const subFolder = await createFolderMutation.mutateAsync({
168+
const subFolder = await createFolder({
167169
name: folderNameForSegment,
168170
workspaceId,
169171
parentId,
@@ -187,6 +189,9 @@ export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {
187189
if (workflowId) importedWorkflowIds.push(workflowId)
188190
} catch (error) {
189191
logger.error(`Failed to import ${workflow.name}:`, error)
192+
toast.error(`Failed to import ${workflow.name}`, {
193+
description: getErrorMessage(error, 'Workflow import failed'),
194+
})
190195
}
191196
}
192197
} else if (jsonFiles.length > 0) {
@@ -198,6 +203,9 @@ export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {
198203
if (workflowId) importedWorkflowIds.push(workflowId)
199204
} catch (error) {
200205
logger.error(`Failed to import ${workflow.name}:`, error)
206+
toast.error(`Failed to import ${workflow.name}`, {
207+
description: getErrorMessage(error, 'Workflow import failed'),
208+
})
201209
}
202210
}
203211
}
@@ -219,6 +227,7 @@ export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {
219227
}
220228
} catch (error) {
221229
logger.error('Failed to import workflows:', error)
230+
toast.error(getErrorMessage(error, 'Failed to import workflows'))
222231
} finally {
223232
setIsImporting(false)
224233

@@ -227,7 +236,7 @@ export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {
227236
}
228237
}
229238
},
230-
[importSingleWorkflow, workspaceId, router, createFolderMutation, queryClient]
239+
[importSingleWorkflow, workspaceId, router, createFolder, queryClient]
231240
)
232241

233242
return {

0 commit comments

Comments
 (0)