From 3cfc25317ae0b04fb22bbd5bcfed543bb599291e Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Thu, 23 Jan 2025 16:36:31 +0530 Subject: [PATCH 1/2] feat: new option to open file in external app --- src/pages/fileBrowser/fileBrowser.js | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/pages/fileBrowser/fileBrowser.js b/src/pages/fileBrowser/fileBrowser.js index e673b4c3f..a67ef1623 100644 --- a/src/pages/fileBrowser/fileBrowser.js +++ b/src/pages/fileBrowser/fileBrowser.js @@ -12,6 +12,7 @@ import select from "dialogs/select"; import fsOperation from "fileSystem"; import externalFs from "fileSystem/externalFs"; import JSZip from "jszip"; +import mimeTypes from "mime-types"; import actionStack from "lib/actionStack"; import checkFiles from "lib/checkFiles"; import constants from "lib/constants"; @@ -766,6 +767,7 @@ function FileBrowserInclude(mode, info, doesOpenLast = true) { if (helpers.isFile(type)) { options.push(["info", strings.info, "info"]); + options.push(["open_with", strings["open with"], "open_in_browser"]); } if (currentDir.url !== "/" && url) { @@ -819,6 +821,27 @@ function FileBrowserInclude(mode, info, doesOpenLast = true) { navigator.clipboard.writeText(url); alert(strings.success, strings["copied to clipboard"]); break; + + case "open_with": + try { + let mimeType = mimeTypes.lookup(name || "text/plain"); + const fs = fsOperation(url); + if (/^s?ftp:/.test(url)) return fs.localName; + + system.fileAction( + (await fs.stat()).url, + name, + "VIEW", + mimeType, + () => { + toast(strings["no app found to handle this file"]); + }, + ); + } catch (error) { + console.error(error); + toast(strings.error); + } + break; } } From 197198eec559bd35eb11a726b867a22157df8baa Mon Sep 17 00:00:00 2001 From: Raunak Raj <71929976+bajrangCoder@users.noreply.github.com> Date: Thu, 23 Jan 2025 16:39:42 +0530 Subject: [PATCH 2/2] fix: formatting --- src/pages/fileBrowser/fileBrowser.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/fileBrowser/fileBrowser.js b/src/pages/fileBrowser/fileBrowser.js index a67ef1623..0e75e0c2b 100644 --- a/src/pages/fileBrowser/fileBrowser.js +++ b/src/pages/fileBrowser/fileBrowser.js @@ -12,7 +12,6 @@ import select from "dialogs/select"; import fsOperation from "fileSystem"; import externalFs from "fileSystem/externalFs"; import JSZip from "jszip"; -import mimeTypes from "mime-types"; import actionStack from "lib/actionStack"; import checkFiles from "lib/checkFiles"; import constants from "lib/constants"; @@ -21,6 +20,7 @@ import projects from "lib/projects"; import recents from "lib/recents"; import remoteStorage from "lib/remoteStorage"; import appSettings from "lib/settings"; +import mimeTypes from "mime-types"; import mustache from "mustache"; import filesSettings from "settings/filesSettings"; import URLParse from "url-parse";