Skip to content
Merged
Show file tree
Hide file tree
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
5 changes: 5 additions & 0 deletions .changeset/tasty-steaks-know.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
'quickmock': patch
---

Fix editor failing to load files opened from outside the workspace. The webview HTML was assigned before registering `onDidReceiveMessage`, causing a race where the initial `READY` / `WEBVIEW_READY` message from the app could be lost and the file content never delivered. The listener is now registered before the HTML assignment.
11 changes: 6 additions & 5 deletions packages/vscode-extension/src/editor/provider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -109,18 +109,19 @@ export class QuickMockEditorProvider implements vscode.CustomEditorProvider<Quic
enableScripts: true,
localResourceRoots: [this.extensionUri],
};
panel.webview.html = getHtml(
panel.webview,
this.extensionUri,
getEditorAppUrl()
);

panel.webview.onDidReceiveMessage(async (msg: AppMessage) => {
await handleWebviewMessage(msg, doc, reply =>
panel.webview.postMessage(reply satisfies HostMessage)
);
documentRegistry.set(doc.uri.fsPath, doc.content);
});

panel.webview.html = getHtml(
panel.webview,
this.extensionUri,
getEditorAppUrl()
);
}

private broadcast(doc: QuickMockDocument, msg: HostMessage): void {
Expand Down
Loading