From bf4ae17c422ad62f636f5eed3836a1879fae727d Mon Sep 17 00:00:00 2001 From: Mykola Paramonov Date: Thu, 22 Jan 2026 15:52:38 +0100 Subject: [PATCH 1/4] feat(nanoflow-actions-native): add download web bile nanoflow action --- .../nanoflow-actions-native/CHANGELOG.md | 10 +++++ .../src/client/DownloadWebFile.ts | 37 +++++++++++++++++++ .../nanoflow-actions-native/typings/mx.d.ts | 5 +++ 3 files changed, 52 insertions(+) create mode 100644 packages/jsActions/nanoflow-actions-native/src/client/DownloadWebFile.ts diff --git a/packages/jsActions/nanoflow-actions-native/CHANGELOG.md b/packages/jsActions/nanoflow-actions-native/CHANGELOG.md index 69cc94518..9e79b39a2 100644 --- a/packages/jsActions/nanoflow-actions-native/CHANGELOG.md +++ b/packages/jsActions/nanoflow-actions-native/CHANGELOG.md @@ -6,6 +6,16 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), ## [Unreleased] +## [6.2.0] Nanoflow Commons - 2026-01-22 + +### Added + +- Added a "Download web file" nanoflow action that triggers file download for web applications. + +### Changed + +- Changed a caption for the existing "Download file" action to "Download native file". + ## [6.1.1] Nanoflow Commons - 2025-10-7 ### Fixed diff --git a/packages/jsActions/nanoflow-actions-native/src/client/DownloadWebFile.ts b/packages/jsActions/nanoflow-actions-native/src/client/DownloadWebFile.ts new file mode 100644 index 000000000..351eda5ca --- /dev/null +++ b/packages/jsActions/nanoflow-actions-native/src/client/DownloadWebFile.ts @@ -0,0 +1,37 @@ +// This file was generated by Mendix Studio Pro. +// +// WARNING: Only the following code will be retained when actions are regenerated: +// - the import list +// - the code between BEGIN USER CODE and END USER CODE +// - the code between BEGIN EXTRA CODE and END EXTRA CODE +// Other code you write will be lost the next time you deploy the project. + +// BEGIN EXTRA CODE +// END EXTRA CODE + +/** + * @param {MxObject} file - File object which will be downloaded. + * @param {boolean} showFileInBrowser - Set to True to let the browser open the file in a new tab. + * Set to False if the file only needs to be downloaded to the device storage. + * @returns {Promise.} + */ +export async function DownloadWebFile(file?: mendix.lib.MxObject, showFileInBrowser?: boolean) { + // BEGIN USER CODE + if (!file) { + return Promise.reject(new Error("Input parameter 'file' is required")); + } + + const target = showFileInBrowser ? "window" : "internal"; + + return new Promise((resolve, reject) => { + mx.ui + .downloadFile({ + mxobject: file, + target, + error: (err: Error) => reject(err) + }) + .then(resolve) + .catch(reject); + }); + // END USER CODE +} diff --git a/packages/jsActions/nanoflow-actions-native/typings/mx.d.ts b/packages/jsActions/nanoflow-actions-native/typings/mx.d.ts index 3b4f6acf8..06628a147 100644 --- a/packages/jsActions/nanoflow-actions-native/typings/mx.d.ts +++ b/packages/jsActions/nanoflow-actions-native/typings/mx.d.ts @@ -2,6 +2,11 @@ declare namespace mx { interface ui { toggleSidebar: () => void; + downloadFile: (args: { + mxobject: mendix.lib.MxObject; + target: "window" | "internal"; + error?: (err: Error) => void; + }) => Promise; } interface data { update: (param: { guid?: string | undefined; entity?: string | undefined; callback?: () => void }) => void; From 1c9bf1933c415b881842ff4c648fd8193aa15a59 Mon Sep 17 00:00:00 2001 From: Mykola Paramonov Date: Fri, 23 Jan 2026 13:31:20 +0100 Subject: [PATCH 2/4] fix(nanoflow-actions-native): add a return type to the download web file action --- .../nanoflow-actions-native/src/client/DownloadWebFile.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/jsActions/nanoflow-actions-native/src/client/DownloadWebFile.ts b/packages/jsActions/nanoflow-actions-native/src/client/DownloadWebFile.ts index 351eda5ca..c6dcef98c 100644 --- a/packages/jsActions/nanoflow-actions-native/src/client/DownloadWebFile.ts +++ b/packages/jsActions/nanoflow-actions-native/src/client/DownloadWebFile.ts @@ -15,7 +15,7 @@ * Set to False if the file only needs to be downloaded to the device storage. * @returns {Promise.} */ -export async function DownloadWebFile(file?: mendix.lib.MxObject, showFileInBrowser?: boolean) { +export async function DownloadWebFile(file?: mendix.lib.MxObject, showFileInBrowser?: boolean): Promise { // BEGIN USER CODE if (!file) { return Promise.reject(new Error("Input parameter 'file' is required")); From 9f048477153e1f33e1ceee71e386b051b98d2d15 Mon Sep 17 00:00:00 2001 From: Mykola Paramonov Date: Mon, 2 Feb 2026 12:37:20 +0100 Subject: [PATCH 3/4] fix(nanoflow-actions-native): update SP version to 11.7.0.92275 --- configs/e2e/mendix-versions.json | 2 +- packages/jsActions/nanoflow-actions-native/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/e2e/mendix-versions.json b/configs/e2e/mendix-versions.json index 52b2aa083..eb9ef7d09 100644 --- a/configs/e2e/mendix-versions.json +++ b/configs/e2e/mendix-versions.json @@ -1,3 +1,3 @@ { - "latest": "11.3.0.80320" + "latest": "11.7.0.92275" } diff --git a/packages/jsActions/nanoflow-actions-native/package.json b/packages/jsActions/nanoflow-actions-native/package.json index 5c52bdc15..f89f15bdf 100644 --- a/packages/jsActions/nanoflow-actions-native/package.json +++ b/packages/jsActions/nanoflow-actions-native/package.json @@ -9,7 +9,7 @@ "url": "https://github.com/mendix/native-widgets.git" }, "marketplace": { - "minimumMXVersion": "11.3.0.80320", + "minimumMXVersion": "11.7.0.92275", "marketplaceId": 109515 }, "testProject": { From 81c187b9be50f4aa8c4825186da534198ea6e252 Mon Sep 17 00:00:00 2001 From: Mykola Paramonov Date: Mon, 2 Feb 2026 15:40:16 +0100 Subject: [PATCH 4/4] fix(nanoflow-actions-native): update SP version to 11.7.0 --- configs/e2e/mendix-versions.json | 2 +- packages/jsActions/nanoflow-actions-native/package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/configs/e2e/mendix-versions.json b/configs/e2e/mendix-versions.json index eb9ef7d09..e88273912 100644 --- a/configs/e2e/mendix-versions.json +++ b/configs/e2e/mendix-versions.json @@ -1,3 +1,3 @@ { - "latest": "11.7.0.92275" + "latest": "11.7.0" } diff --git a/packages/jsActions/nanoflow-actions-native/package.json b/packages/jsActions/nanoflow-actions-native/package.json index f89f15bdf..19310d4b4 100644 --- a/packages/jsActions/nanoflow-actions-native/package.json +++ b/packages/jsActions/nanoflow-actions-native/package.json @@ -9,7 +9,7 @@ "url": "https://github.com/mendix/native-widgets.git" }, "marketplace": { - "minimumMXVersion": "11.7.0.92275", + "minimumMXVersion": "11.7.0", "marketplaceId": 109515 }, "testProject": {