From 02e32c96738862ab8ce39b87dd581ecfdbbeea99 Mon Sep 17 00:00:00 2001 From: komkida91 Date: Sun, 1 Mar 2026 14:40:33 +0100 Subject: [PATCH] fix(builder): restaurante libre y ordenado; otros rubros sin cambios --- elementor/templates/elementor_builder.html | 27 ++++++++++++++++++---- 1 file changed, 22 insertions(+), 5 deletions(-) diff --git a/elementor/templates/elementor_builder.html b/elementor/templates/elementor_builder.html index 6702124..badbe1d 100644 --- a/elementor/templates/elementor_builder.html +++ b/elementor/templates/elementor_builder.html @@ -3068,7 +3068,11 @@ const state = { const keepRubro = normalizeRubro(state.settings.business_rubro || SERVER_RUBRO || "restaurante"); state.blocks = []; state.settings = { ...defaultSettings, business_rubro: keepRubro }; - state.settings.free_drag = false; + if (BUILDER_MODE === "ub24"){ + state.settings.free_drag = false; + } else { + state.settings.free_drag = keepRubro === "restaurante"; + } selectedBlockId = null; renderInspector(); renderPreview(); @@ -3096,9 +3100,15 @@ const state = { state.blocks.forEach(b=>{ if (!b.page) b.page = "home"; }); state.settings.free_drag = false; } else { - // Mantener layout tipo template estable por defecto en builder web. - // Evita superposiciones y bloqueos al agregar nuevos bloques. - state.settings.free_drag = false; + const isRestaurante = initialRubro === "restaurante"; + // Solo restaurante mantiene modo libre por requerimiento del usuario. + state.settings.free_drag = isRestaurante; + if (isRestaurante){ + if (!hasMeaningfulFreeDragPositions(state.blocks) || hasSevereFreeDragOverlap(state.blocks)){ + applyStackedFreeDragLayout(state.blocks); + } + normalizeDuplicatedFreeDragPositions(state.blocks); + } } selectedBlockId = null; wireSidebar(); @@ -3121,8 +3131,15 @@ const state = { const t = templates[key]; state.settings = { ...state.settings, ...t.settings }; state.settings.business_rubro = normalizeRubro(key); - state.settings.free_drag = false; + if (BUILDER_MODE === "ub24"){ + 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) })); + if (state.settings.free_drag){ + applyStackedFreeDragLayout(state.blocks); + } selectedBlockId = null; renderInspector(); renderPreview(); wireSettings();