This commit is contained in:
2026-01-29 00:24:55 +01:00
parent 5f7a25dbab
commit f885e1e775
2 changed files with 26 additions and 5 deletions

View File

@@ -1 +1 @@
1.1.51
1.1.52

View File

@@ -453,13 +453,30 @@
const ensureViewMatchesModel = (model) => {
const target = resolveTextModel(model);
if (!isTextLike(target)) return;
if (syncing.has(target)) return;
const el = resolveViewEl(target);
if (!el) return;
if (el.isContentEditable || el.getAttribute('contenteditable') === 'true') return;
const modelHtml = String(getModelHtml(target) || '').trim();
if (!modelHtml) return;
const viewHtml = String(el.innerHTML || '').trim();
if (el && (el.isContentEditable || el.getAttribute('contenteditable') === 'true')) return;
const viewHtml = String((el && el.innerHTML) || '').trim();
if (viewHtml) return;
try {
syncing.add(target);
if (target.components) {
try { target.components(modelHtml); } catch {}
}
if (target.set) target.set('content', modelHtml);
target.trigger && target.trigger('change:content');
if (target.view && typeof target.view.render === 'function') {
target.view.render();
}
if (editor && typeof editor.trigger === 'function') {
editor.trigger('component:update', target);
}
} catch {} finally {
syncing.delete(target);
}
if (!el) return;
const apply = () => {
try {
const current = String(el.innerHTML || '').trim();
@@ -475,8 +492,12 @@
if (!isTextLike(target) || !target.view || !target.view.el || syncing.has(target)) return;
if (window.__bridgeRteOpen) return;
const viewHtml = normalizeViewHtmlForModel(target.view.el.innerHTML || '');
if (!viewHtml) return;
const modelHtml = normalizeViewHtmlForModel(getModelHtml(target));
if (!viewHtml && modelHtml) {
ensureViewMatchesModel(target);
return;
}
if (!viewHtml) return;
if (viewHtml === modelHtml) return;
try {
syncing.add(target);