From 62c0562e18751f653470c5317c53cd395edf6016 Mon Sep 17 00:00:00 2001 From: James Lucas Date: Sat, 4 Nov 2023 14:36:41 +1100 Subject: [PATCH] fix: remove redundant droppingToPlaceholderRow which uses the same check as droppingToNewRow, and simplify the logic. --- src/js/form-builder.js | 42 ++++++++++++++++++++---------------------- 1 file changed, 20 insertions(+), 22 deletions(-) diff --git a/src/js/form-builder.js b/src/js/form-builder.js index 453fc2e24..f20b1e878 100644 --- a/src/js/form-builder.js +++ b/src/js/form-builder.js @@ -1316,34 +1316,32 @@ function FormBuilder(opts, element, $) { const senderIsControlsBox = $(ui.sender).attr('id') === $cbUL.attr('id') const droppingToNewRow = $(ui.item).parent().hasClass(tmpRowPlaceholderClass) - const droppingToPlaceholderRow = $(ui.item).parent().hasClass(tmpRowPlaceholderClass) - const droppingToExistingRow = - $(ui.item).parent().hasClass(rowWrapperClass) && !$(ui.item).parent().hasClass(tmpRowPlaceholderClass) + const droppingToExistingRow = !droppingToNewRow && $(ui.item).parent().hasClass(rowWrapperClass) - if (droppingToNewRow && !senderIsControlsBox) { - const colWrapper = $(ui.item) - - const columnData = prepareFieldRow({}) + if (droppingToNewRow) { + if (senderIsControlsBox) { + insertTargetIsRow = true + insertingNewControl = true + $targetInsertWrapper = $(ui.item).parent() + } else { + const colWrapper = $(ui.item) - const rowWrapperNode = m('div', null, { - id: `${colWrapper.find('li').attr('id')}-row`, - className: `row row-${columnData.rowUniqueId} ${rowWrapperClass}`, - }) + const columnData = prepareFieldRow({}) - $(ui.item).parent().replaceWith(rowWrapperNode) - AttachColWrapperHandler($(ui.item)) + const rowWrapperNode = m('div', null, { + id: `${colWrapper.find('li').attr('id')}-row`, + className: `row row-${columnData.rowUniqueId} ${rowWrapperClass}`, + }) - colWrapper.appendTo(rowWrapperNode) + $(ui.item).parent().replaceWith(rowWrapperNode) + AttachColWrapperHandler($(ui.item)) - setupSortableRowWrapper(rowWrapperNode) - syncFieldWithNewRow(colWrapper.attr('id')) - checkRowCleanup() - } + colWrapper.appendTo(rowWrapperNode) - if (droppingToPlaceholderRow && senderIsControlsBox) { - insertTargetIsRow = true - insertingNewControl = true - $targetInsertWrapper = $(ui.item).parent() + setupSortableRowWrapper(rowWrapperNode) + syncFieldWithNewRow(colWrapper.attr('id')) + checkRowCleanup() + } } if (droppingToExistingRow && senderIsControlsBox) {