diff --git a/app/client/src/utils/DSLMigrations.ts b/app/client/src/utils/DSLMigrations.ts index 6d01edbfa0..6339a3fcce 100644 --- a/app/client/src/utils/DSLMigrations.ts +++ b/app/client/src/utils/DSLMigrations.ts @@ -1023,6 +1023,17 @@ export const revertButtonStyleToButtonColor = ( delete currentDSL.prevMenuStyle; } } + if (currentDSL.type === "TABLE_WIDGET") { + if (currentDSL.hasOwnProperty("primaryColumns")) { + Object.keys(currentDSL.primaryColumns).forEach((column) => { + if (currentDSL.primaryColumns[column].columnType === "button") { + currentDSL.primaryColumns[column].buttonColor = + currentDSL.primaryColumns[column].buttonStyle; + delete currentDSL.primaryColumns[column].buttonStyle; + } + }); + } + } if (currentDSL.children && currentDSL.children.length) { currentDSL.children = currentDSL.children.map((child) => revertButtonStyleToButtonColor(child), diff --git a/app/client/src/utils/migrations/TableWidget.test.ts b/app/client/src/utils/migrations/TableWidget.test.ts index 31b44c911f..d1ab4a82e3 100644 --- a/app/client/src/utils/migrations/TableWidget.test.ts +++ b/app/client/src/utils/migrations/TableWidget.test.ts @@ -1607,6 +1607,24 @@ describe("Table Widget selectedRow bindings update", () => { computedValue: "{{Table1.sanitizedTableData.map((currentRow) => ( currentRow.action))}}", }, + customColumn1: { + index: 4, + width: 150, + id: "customColumn1", + horizontalAlignment: "LEFT", + verticalAlignment: "CENTER", + columnType: "button", + textSize: "PARAGRAPH", + enableFilter: true, + enableSort: true, + isVisible: true, + isCellVisible: true, + isDisabled: false, + isDerived: true, + label: "Delete", + onClick: "{{showAlert('Hello')}}", + computedValue: "", + }, }, delimiter: ",", derivedColumns: {}, @@ -1759,6 +1777,24 @@ describe("Table Widget selectedRow bindings update", () => { computedValue: "{{Table1.sanitizedTableData.map((currentRow) => ( currentRow.action))}}", }, + customColumn1: { + index: 4, + width: 150, + id: "customColumn1", + horizontalAlignment: "LEFT", + verticalAlignment: "CENTER", + columnType: "button", + textSize: "PARAGRAPH", + enableFilter: true, + enableSort: true, + isVisible: true, + isCellVisible: true, + isDisabled: false, + isDerived: true, + label: "Delete", + onClick: "{{showAlert('Hello')}}", + computedValue: "", + }, }, delimiter: ",", derivedColumns: {}, @@ -1797,6 +1833,6 @@ describe("Table Widget selectedRow bindings update", () => { }, ], }; - expect(JSON.stringify(newDsl) === JSON.stringify(outputDsl)); + expect(newDsl).toStrictEqual(outputDsl); }); }); diff --git a/app/client/src/utils/migrations/TableWidget.ts b/app/client/src/utils/migrations/TableWidget.ts index c83b0f4326..61ee7c5654 100644 --- a/app/client/src/utils/migrations/TableWidget.ts +++ b/app/client/src/utils/migrations/TableWidget.ts @@ -325,10 +325,9 @@ const getUpdatedColumns = ( "currentRow", ); } - updatedColumns[sanitizedColumnId] = { - ...columnProps, - onClick: newOnClickBindingValue, - }; + updatedColumns[sanitizedColumnId] = columnProps; + if (newOnClickBindingValue) + updatedColumns[sanitizedColumnId].onClick = newOnClickBindingValue; } } return updatedColumns;