This commit is contained in:
2026-01-19 00:59:24 +01:00
parent 64d1fb072a
commit e761b62ac2
2 changed files with 32 additions and 19 deletions

View File

@@ -947,24 +947,42 @@
&& !hasPages
&& (parsedState.components || parsedState.styles);
if (isArray) {
ed.setComponents(parsedState);
applied = true;
log('CONTENT', 'JSON-Komponenten (Array) angewendet.', 'orange');
} else if (isLegacy) {
if (parsedState.components) {
ed.setComponents(parsedState.components);
} else {
const looksHtmlWrapper = parsedState.length === 1 && parsedState[0] && parsedState[0].type === 'html';
if (!looksHtmlWrapper) {
ed.setComponents(parsedState);
applied = true;
log('CONTENT', 'JSON-Komponenten (Array) angewendet.', 'orange');
} else {
log('CONTENT WARN', 'JSON enthält nur HTML-Wrapper, nutze HTML-Fallback.', 'orange', 'warn');
applied = false;
}
if (parsedState.styles) {
ed.setStyle(parsedState.styles);
} else if (isLegacy) {
const legacyComponents = parsedState.components || parsedState;
const looksHtmlWrapper = Array.isArray(legacyComponents)
&& legacyComponents.length === 1
&& legacyComponents[0]
&& legacyComponents[0].type === 'html';
if (!looksHtmlWrapper) {
ed.setComponents(legacyComponents);
if (parsedState.styles) {
ed.setStyle(parsedState.styles);
}
applied = true;
log('CONTENT', 'Legacy JSON (components/styles) angewendet.', 'orange');
} else {
log('CONTENT WARN', 'Legacy JSON enthält nur HTML-Wrapper, nutze HTML-Fallback.', 'orange', 'warn');
applied = false;
}
applied = true;
log('CONTENT', 'Legacy JSON (components/styles) angewendet.', 'orange');
} else if (parsedState && typeof parsedState === 'object' && !hasPages) {
ed.setComponents(parsedState);
applied = true;
log('CONTENT', 'JSON ohne Pages als Komponenten angewendet.', 'orange');
const looksHtmlWrapper = parsedState && parsedState.type === 'html';
if (!looksHtmlWrapper) {
ed.setComponents(parsedState);
applied = true;
log('CONTENT', 'JSON ohne Pages als Komponenten angewendet.', 'orange');
} else {
log('CONTENT WARN', 'JSON ohne Pages ist HTML-Wrapper, nutze HTML-Fallback.', 'orange', 'warn');
applied = false;
}
} else {
ed.loadProjectData(parsedState);
applied = true;