Skip to content

Commit 718dae6

Browse files
authored
fix(ui): Improve project import synchronization and error handling (#995)
* fix(ui): Improve project import synchronization and error handling * fix(ui): format
1 parent 2cf660e commit 718dae6

File tree

1 file changed

+18
-15
lines changed

1 file changed

+18
-15
lines changed

ui/src/hooks/useProjectImport.ts

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -65,43 +65,46 @@ export default () => {
6565
if (!project) return console.error("Failed to create project");
6666

6767
const yDoc = new Y.Doc();
68-
Y.applyUpdate(yDoc, yDocBinary);
69-
7068
const { websocket } = config();
69+
7170
if (websocket && projectMeta) {
72-
(async () => {
73-
const token = await getAccessToken();
71+
const token = await getAccessToken();
7472

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+
);
8179

80+
await new Promise<void>((resolve) => {
8281
yWebSocketProvider.once("sync", () => {
82+
yDoc.transact(() => {
83+
Y.applyUpdate(yDoc, yDocBinary);
84+
});
85+
8386
const yWorkflows = yDoc.getArray<YWorkflow>("workflows");
8487
if (!yWorkflows.length) {
8588
console.warn("Imported project has no workflows");
8689
}
8790

8891
setIsProjectImporting(false);
92+
resolve();
8993
});
90-
})();
94+
});
9195
}
9296
} catch (error) {
93-
console.error("Error importing project:", error);
97+
console.error("Failed to import project:", error);
9498
setIsProjectImporting(false);
9599
}
96100
},
97-
[currentWorkspace, t, createProject, getAccessToken],
101+
[createProject, currentWorkspace, getAccessToken, t],
98102
);
99103

100104
return {
101-
fileInputRef,
102105
isProjectImporting,
103-
setIsProjectImporting,
104106
handleProjectImportClick,
105107
handleProjectFileUpload,
108+
fileInputRef,
106109
};
107110
};

0 commit comments

Comments
 (0)