diff --git a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/RowAction.svelte b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/RowAction.svelte
new file mode 100644
index 0000000000..866dcd2972
--- /dev/null
+++ b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/RowAction.svelte
@@ -0,0 +1,118 @@
+
+
+
+
+
+
+
+
+
diff --git a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/index.js b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/index.js
index 606ee41d02..b171b34111 100644
--- a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/index.js
+++ b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/actions/index.js
@@ -25,3 +25,4 @@ export { default as OpenModal } from "./OpenModal.svelte"
export { default as CloseModal } from "./CloseModal.svelte"
export { default as ClearRowSelection } from "./ClearRowSelection.svelte"
export { default as DownloadFile } from "./DownloadFile.svelte"
+export { default as RowAction } from "./RowAction.svelte"
diff --git a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/manifest.json b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/manifest.json
index 4022926e7f..631e3119e8 100644
--- a/packages/builder/src/components/design/settings/controls/ButtonActionEditor/manifest.json
+++ b/packages/builder/src/components/design/settings/controls/ButtonActionEditor/manifest.json
@@ -178,6 +178,11 @@
"name": "Download File",
"type": "data",
"component": "DownloadFile"
+ },
+ {
+ "name": "Row Action",
+ "type": "data",
+ "component": "RowAction"
}
]
}
diff --git a/packages/client/src/utils/buttonActions.js b/packages/client/src/utils/buttonActions.js
index 8f0cb575a7..4dae0ad273 100644
--- a/packages/client/src/utils/buttonActions.js
+++ b/packages/client/src/utils/buttonActions.js
@@ -493,6 +493,15 @@ const downloadFileHandler = async action => {
}
}
+const rowActionHandler = async action => {
+ const { resourceId, rowId, rowActionId } = action.parameters
+ await API.rowActions.trigger({
+ rowActionId,
+ tableId: resourceId,
+ rowId,
+ })
+}
+
const handlerMap = {
["Fetch Row"]: fetchRowHandler,
["Save Row"]: saveRowHandler,
@@ -514,6 +523,7 @@ const handlerMap = {
["Open Modal"]: openModalHandler,
["Close Modal"]: closeModalHandler,
["Download File"]: downloadFileHandler,
+ ["Row Action"]: rowActionHandler,
}
const confirmTextMap = {