@@ -65,43 +65,46 @@ export default () => {
65
65
if ( ! project ) return console . error ( "Failed to create project" ) ;
66
66
67
67
const yDoc = new Y . Doc ( ) ;
68
- Y . applyUpdate ( yDoc , yDocBinary ) ;
69
-
70
68
const { websocket } = config ( ) ;
69
+
71
70
if ( websocket && projectMeta ) {
72
- ( async ( ) => {
73
- const token = await getAccessToken ( ) ;
71
+ const token = await getAccessToken ( ) ;
74
72
75
- const yWebSocketProvider = new WebsocketProvider (
76
- websocket ,
77
- `${ project . id } :${ DEFAULT_ENTRY_GRAPH_ID } ` ,
78
- yDoc ,
79
- { params : { token } } ,
80
- ) ;
73
+ const yWebSocketProvider = new WebsocketProvider (
74
+ websocket ,
75
+ `${ project . id } :${ DEFAULT_ENTRY_GRAPH_ID } ` ,
76
+ yDoc ,
77
+ { params : { token } } ,
78
+ ) ;
81
79
80
+ await new Promise < void > ( ( resolve ) => {
82
81
yWebSocketProvider . once ( "sync" , ( ) => {
82
+ yDoc . transact ( ( ) => {
83
+ Y . applyUpdate ( yDoc , yDocBinary ) ;
84
+ } ) ;
85
+
83
86
const yWorkflows = yDoc . getArray < YWorkflow > ( "workflows" ) ;
84
87
if ( ! yWorkflows . length ) {
85
88
console . warn ( "Imported project has no workflows" ) ;
86
89
}
87
90
88
91
setIsProjectImporting ( false ) ;
92
+ resolve ( ) ;
89
93
} ) ;
90
- } ) ( ) ;
94
+ } ) ;
91
95
}
92
96
} catch ( error ) {
93
- console . error ( "Error importing project:" , error ) ;
97
+ console . error ( "Failed to import project:" , error ) ;
94
98
setIsProjectImporting ( false ) ;
95
99
}
96
100
} ,
97
- [ currentWorkspace , t , createProject , getAccessToken ] ,
101
+ [ createProject , currentWorkspace , getAccessToken , t ] ,
98
102
) ;
99
103
100
104
return {
101
- fileInputRef,
102
105
isProjectImporting,
103
- setIsProjectImporting,
104
106
handleProjectImportClick,
105
107
handleProjectFileUpload,
108
+ fileInputRef,
106
109
} ;
107
110
} ;
0 commit comments