Skip to content
Draft
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
import { useCallback, useRef, useState } from 'react'
import { toast } from '@sim/emcn'
import { createLogger } from '@sim/logger'
import { getErrorMessage } from '@sim/utils/errors'
import { useQueryClient } from '@tanstack/react-query'
import { useRouter } from 'next/navigation'
import { usePostHog } from 'posthog-js/react'
Expand Down Expand Up @@ -34,9 +36,9 @@ interface UseImportWorkflowProps {
*/
export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {
const router = useRouter()
const createWorkflowMutation = useCreateWorkflow()
const { mutateAsync: createWorkflow } = useCreateWorkflow()
const queryClient = useQueryClient()
const createFolderMutation = useCreateFolder()
const { mutateAsync: createFolder } = useCreateFolder()
const clearDiff = useWorkflowDiffStore((state) => state.clearDiff)
const posthog = usePostHog()
const posthogRef = useRef(posthog)
Expand All @@ -56,7 +58,7 @@ export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {
folderId,
sortOrder,
createWorkflow: async ({ name, description, workspaceId, folderId, sortOrder }) =>
createWorkflowMutation.mutateAsync({
createWorkflow({
name,
description,
workspaceId,
Expand All @@ -68,7 +70,7 @@ export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {

return result?.workflowId ?? null
},
[clearDiff, createWorkflowMutation, workspaceId]
[clearDiff, createWorkflow, workspaceId]
)

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

const folderName = metadata?.workspaceName || zipFile.name.replace(/\.zip$/i, '')
const importFolder = await createFolderMutation.mutateAsync({
const importFolder = await createFolder({
name: folderName,
workspaceId,
})
Expand Down Expand Up @@ -131,7 +133,7 @@ export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {
parentId = await createFolderRecursive(foldersById.get(folder.parentId)!)
}

const newFolder = await createFolderMutation.mutateAsync({
const newFolder = await createFolder({
name: folder.name,
workspaceId,
parentId,
Expand Down Expand Up @@ -163,7 +165,7 @@ export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {
const folderNameForSegment = workflow.folderPath[i]

if (!folderMap.has(pathSegment)) {
const subFolder = await createFolderMutation.mutateAsync({
const subFolder = await createFolder({
name: folderNameForSegment,
workspaceId,
parentId,
Expand All @@ -187,6 +189,9 @@ export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {
if (workflowId) importedWorkflowIds.push(workflowId)
} catch (error) {
logger.error(`Failed to import ${workflow.name}:`, error)
toast.error(`Failed to import ${workflow.name}`, {
description: getErrorMessage(error, 'Workflow import failed'),
})
}
}
} else if (jsonFiles.length > 0) {
Expand All @@ -198,6 +203,9 @@ export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {
if (workflowId) importedWorkflowIds.push(workflowId)
} catch (error) {
logger.error(`Failed to import ${workflow.name}:`, error)
toast.error(`Failed to import ${workflow.name}`, {
description: getErrorMessage(error, 'Workflow import failed'),
})
}
}
}
Expand All @@ -219,6 +227,7 @@ export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {
}
} catch (error) {
logger.error('Failed to import workflows:', error)
toast.error(getErrorMessage(error, 'Failed to import workflows'))
} finally {
setIsImporting(false)

Expand All @@ -227,7 +236,7 @@ export function useImportWorkflow({ workspaceId }: UseImportWorkflowProps) {
}
}
},
[importSingleWorkflow, workspaceId, router, createFolderMutation, queryClient]
[importSingleWorkflow, workspaceId, router, createFolder, queryClient]
)

return {
Expand Down
Loading