Skip to content

Commit 7f85b27

Browse files
committed
fix(mdviewer): restore innerHTML update in file:rendered and reset syncId on file switch
The doc-cache refactoring removed content.innerHTML = parseResult.html from the file:rendered handler, breaking CM→iframe content sync. Also reset _lastReceivedSyncId and _syncId on file switch/set content to prevent stale syncId rejection after MarkdownSync reactivation.
1 parent cfd80c8 commit 7f85b27

2 files changed

Lines changed: 10 additions & 0 deletions

File tree

src-mdviewer/src/bridge.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -321,6 +321,9 @@ export function initBridge() {
321321
function handleSetContent(data) {
322322
const { markdown, baseURL, filePath } = data;
323323

324+
// Reset sync tracking — Phoenix resets its counter on activate
325+
_lastReceivedSyncId = -1;
326+
324327
if (baseURL) {
325328
_baseURL = baseURL;
326329
}
@@ -398,6 +401,10 @@ function handleUpdateContent(data) {
398401
function handleSwitchFile(data) {
399402
const { filePath, markdown, baseURL } = data;
400403

404+
// Reset sync tracking — Phoenix resets its counter on activate
405+
_lastReceivedSyncId = -1;
406+
_syncId = 0;
407+
401408
if (baseURL) {
402409
_baseURL = baseURL;
403410
}

src-mdviewer/src/components/viewer.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ export function initViewer() {
5656
const content = getContentEl();
5757
if (!content) return;
5858

59+
content.innerHTML = parseResult.html;
60+
content.dir = "auto";
61+
5962
wrapTables();
6063
await renderAfterHTML(content, parseResult);
6164

0 commit comments

Comments
 (0)