fix(builder): forzar layout template estable y desactivar free-drag auto
This commit is contained in:
@@ -3068,11 +3068,7 @@ const state = {
|
||||
const keepRubro = normalizeRubro(state.settings.business_rubro || SERVER_RUBRO || "restaurante");
|
||||
state.blocks = [];
|
||||
state.settings = { ...defaultSettings, business_rubro: keepRubro };
|
||||
if (BUILDER_MODE === "ub24"){
|
||||
state.settings.free_drag = false;
|
||||
} else {
|
||||
state.settings.free_drag = keepRubro === "restaurante";
|
||||
}
|
||||
state.settings.free_drag = false;
|
||||
selectedBlockId = null;
|
||||
renderInspector();
|
||||
renderPreview();
|
||||
@@ -3100,20 +3096,9 @@ const state = {
|
||||
state.blocks.forEach(b=>{ if (!b.page) b.page = "home"; });
|
||||
state.settings.free_drag = false;
|
||||
} else {
|
||||
const savedFreeDrag = typeof state.settings.free_drag === "boolean" ? state.settings.free_drag : false;
|
||||
if (!savedFreeDrag){
|
||||
state.settings.free_drag = false;
|
||||
} else {
|
||||
// Compatibilidad: si un sitio viene marcado como free_drag pero no tiene posiciones
|
||||
// reales, volvemos a flujo normal para evitar superposicion de bloques.
|
||||
state.settings.free_drag = hasMeaningfulFreeDragPositions(state.blocks);
|
||||
}
|
||||
if (state.settings.free_drag){
|
||||
if (!hasMeaningfulFreeDragPositions(state.blocks) || hasSevereFreeDragOverlap(state.blocks)){
|
||||
applyStackedFreeDragLayout(state.blocks);
|
||||
}
|
||||
normalizeDuplicatedFreeDragPositions(state.blocks);
|
||||
}
|
||||
// Mantener layout tipo template estable por defecto en builder web.
|
||||
// Evita superposiciones y bloqueos al agregar nuevos bloques.
|
||||
state.settings.free_drag = false;
|
||||
}
|
||||
selectedBlockId = null;
|
||||
wireSidebar();
|
||||
@@ -3136,15 +3121,8 @@ const state = {
|
||||
const t = templates[key];
|
||||
state.settings = { ...state.settings, ...t.settings };
|
||||
state.settings.business_rubro = normalizeRubro(key);
|
||||
if (BUILDER_MODE === "ub24"){
|
||||
state.settings.free_drag = false;
|
||||
} else {
|
||||
state.settings.free_drag = state.settings.business_rubro === "restaurante";
|
||||
}
|
||||
state.settings.free_drag = false;
|
||||
state.blocks = t.blocks.map(b=>({ ...b, id: makeId(), page: (BUILDER_MODE==="ub24" ? "home" : b.page) }));
|
||||
if (state.settings.free_drag){
|
||||
applyStackedFreeDragLayout(state.blocks);
|
||||
}
|
||||
selectedBlockId = null;
|
||||
renderInspector(); renderPreview();
|
||||
wireSettings();
|
||||
|
||||
Reference in New Issue
Block a user