11import { useCallback , useRef , useState } from 'react'
2+ import { toast } from '@sim/emcn'
23import { createLogger } from '@sim/logger'
4+ import { getErrorMessage } from '@sim/utils/errors'
35import { useQueryClient } from '@tanstack/react-query'
46import { useRouter } from 'next/navigation'
57import { usePostHog } from 'posthog-js/react'
@@ -34,9 +36,9 @@ interface UseImportWorkflowProps {
3436 */
3537export 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 ( / \. z i p $ / 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