This commit is contained in:
2026-01-17 00:55:37 +01:00
parent 565ea0030d
commit 67f3810480
2 changed files with 38 additions and 0 deletions

View File

@@ -71,6 +71,27 @@
const isTextLike = (component) => !!(component && component.is && (component.is('text') || component.is('button') || component.is('link'))); const isTextLike = (component) => !!(component && component.is && (component.is('text') || component.is('button') || component.is('link')));
const logConsoleSnapshot = (editor, component, label) => {
try {
const viewEl = component && component.view ? component.view.el : null;
const modelContent = component && component.get ? String(component.get('content') || '') : '';
const editorHtml = editor && typeof editor.getHtml === 'function' ? String(editor.getHtml() || '') : '';
const maxLen = 1000;
console.log(`[RTE DEBUG] ${label}`, {
modelId: component && (component.getId ? component.getId() : component.get && component.get('id')),
modelType: component && component.get ? component.get('type') : undefined,
modelContentLen: modelContent.length,
modelContent: modelContent.slice(0, maxLen),
viewHtmlLen: viewEl ? String(viewEl.innerHTML || '').length : 0,
viewHtml: viewEl ? String(viewEl.innerHTML || '').slice(0, maxLen) : '',
viewOuterLen: viewEl ? String(viewEl.outerHTML || '').length : 0,
viewOuter: viewEl ? String(viewEl.outerHTML || '').slice(0, maxLen) : '',
editorHtmlLen: editorHtml.length,
editorHtml: editorHtml.slice(0, maxLen),
});
} catch {}
};
const applyContentToComponent = (editor, component, html) => { const applyContentToComponent = (editor, component, html) => {
if (!component) return; if (!component) return;
const content = String(html || ''); const content = String(html || '');
@@ -289,7 +310,9 @@
const rawHtml = content.innerHTML || ''; const rawHtml = content.innerHTML || '';
const html = sanitizeInlineHtml(rawHtml, content.textContent || ''); const html = sanitizeInlineHtml(rawHtml, content.textContent || '');
component.__bridgeRteLastContent = html; component.__bridgeRteLastContent = html;
logConsoleSnapshot(editor, component, 'before-save');
applyContentToComponent(editor, component, html); applyContentToComponent(editor, component, html);
logConsoleSnapshot(editor, component, 'after-save');
closeModal(); closeModal();
}); });
@@ -346,7 +369,9 @@
const current = String(model.get('content') || '').trim(); const current = String(model.get('content') || '').trim();
if (!current || current === '<div></div>' || current === '<div><br></div>' || current === '<div><br></div><br>') { if (!current || current === '<div></div>' || current === '<div><br></div>' || current === '<div><br></div><br>') {
model.__bridgeRteRestoring = true; model.__bridgeRteRestoring = true;
logConsoleSnapshot(editor, model, 'restore-start');
applyContentToComponent(editor, model, last); applyContentToComponent(editor, model, last);
logConsoleSnapshot(editor, model, 'restore-end');
model.__bridgeRteRestoring = false; model.__bridgeRteRestoring = false;
} }
}; };

View File

@@ -377,6 +377,14 @@
try { try {
modelContent = selected && selected.get ? String(selected.get('content') || '') : ''; modelContent = selected && selected.get ? String(selected.get('content') || '') : '';
} catch {} } catch {}
let viewOuter = '';
try {
viewOuter = selectedEl ? String(selectedEl.outerHTML || '') : '';
} catch {}
let editorHtml = '';
try {
editorHtml = editor && typeof editor.getHtml === 'function' ? String(editor.getHtml() || '') : '';
} catch {}
try { try {
console.warn('[BLUR LOG]', { console.warn('[BLUR LOG]', {
tag: target.tagName, tag: target.tagName,
@@ -385,7 +393,12 @@
modelType: selected && selected.get ? selected.get('type') : undefined, modelType: selected && selected.get ? selected.get('type') : undefined,
modelId: selected && (selected.getId ? selected.getId() : selected.get && selected.get('id')), modelId: selected && (selected.getId ? selected.getId() : selected.get && selected.get('id')),
modelContentLen: modelContent.length, modelContentLen: modelContent.length,
modelContent: modelContent.slice(0, 1000),
inSelected, inSelected,
viewOuterLen: viewOuter.length,
viewOuter: viewOuter.slice(0, 1000),
editorHtmlLen: editorHtml.length,
editorHtml: editorHtml.slice(0, 1000),
}); });
} catch {} } catch {}
}; };