fix(builder): restaurante libre y ordenado; otros rubros sin cambios

This commit is contained in:
komkida91
2026-03-01 14:40:33 +01:00
parent 40738cc65b
commit 02e32c9673

View File

@@ -3068,7 +3068,11 @@ const state = {
const keepRubro = normalizeRubro(state.settings.business_rubro || SERVER_RUBRO || "restaurante"); const keepRubro = normalizeRubro(state.settings.business_rubro || SERVER_RUBRO || "restaurante");
state.blocks = []; state.blocks = [];
state.settings = { ...defaultSettings, business_rubro: keepRubro }; state.settings = { ...defaultSettings, business_rubro: keepRubro };
if (BUILDER_MODE === "ub24"){
state.settings.free_drag = false; state.settings.free_drag = false;
} else {
state.settings.free_drag = keepRubro === "restaurante";
}
selectedBlockId = null; selectedBlockId = null;
renderInspector(); renderInspector();
renderPreview(); renderPreview();
@@ -3096,9 +3100,15 @@ const state = {
state.blocks.forEach(b=>{ if (!b.page) b.page = "home"; }); state.blocks.forEach(b=>{ if (!b.page) b.page = "home"; });
state.settings.free_drag = false; state.settings.free_drag = false;
} else { } else {
// Mantener layout tipo template estable por defecto en builder web. const isRestaurante = initialRubro === "restaurante";
// Evita superposiciones y bloqueos al agregar nuevos bloques. // Solo restaurante mantiene modo libre por requerimiento del usuario.
state.settings.free_drag = false; state.settings.free_drag = isRestaurante;
if (isRestaurante){
if (!hasMeaningfulFreeDragPositions(state.blocks) || hasSevereFreeDragOverlap(state.blocks)){
applyStackedFreeDragLayout(state.blocks);
}
normalizeDuplicatedFreeDragPositions(state.blocks);
}
} }
selectedBlockId = null; selectedBlockId = null;
wireSidebar(); wireSidebar();
@@ -3121,8 +3131,15 @@ const state = {
const t = templates[key]; const t = templates[key];
state.settings = { ...state.settings, ...t.settings }; state.settings = { ...state.settings, ...t.settings };
state.settings.business_rubro = normalizeRubro(key); state.settings.business_rubro = normalizeRubro(key);
if (BUILDER_MODE === "ub24"){
state.settings.free_drag = false; state.settings.free_drag = false;
} else {
state.settings.free_drag = state.settings.business_rubro === "restaurante";
}
state.blocks = t.blocks.map(b=>({ ...b, id: makeId(), page: (BUILDER_MODE==="ub24" ? "home" : b.page) })); 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; selectedBlockId = null;
renderInspector(); renderPreview(); renderInspector(); renderPreview();
wireSettings(); wireSettings();