diff --git a/backend/bindings/app.go b/backend/bindings/app.go
index ce27785f..9a5f2746 100644
--- a/backend/bindings/app.go
+++ b/backend/bindings/app.go
@@ -6,6 +6,7 @@ import (
"strings"
"time"
+ "github.com/pkg/browser"
"github.com/pkg/errors"
"github.com/spf13/viper"
wailsRuntime "github.com/wailsapp/wails/v2/pkg/runtime"
@@ -164,6 +165,13 @@ func (a *App) Show() {
wailsRuntime.Show(a.ctx)
}
+func (a *App) OpenExternal(input string) {
+ err := browser.OpenFile(input)
+ if err != nil {
+ slog.Error("failed to open external", slog.Any("error", err), slog.String("path", input))
+ }
+}
+
func (a *App) GetAPIEndpoint() string {
return viper.GetString("api-base") + viper.GetString("graphql-api")
}
diff --git a/frontend/src/lib/components/left-bar/LeftBar.svelte b/frontend/src/lib/components/left-bar/LeftBar.svelte
index c9e6266d..d5f8eb4e 100644
--- a/frontend/src/lib/components/left-bar/LeftBar.svelte
+++ b/frontend/src/lib/components/left-bar/LeftBar.svelte
@@ -4,7 +4,7 @@
import Dialog, { Title, Content, Actions } from '@smui/dialog';
import TextField from '@smui/textfield';
import Tooltip, { Wrapper } from '@smui/tooltip';
- import { mdiCheckCircle, mdiCloseCircle, mdiDownload, mdiHelpCircle, mdiPencil, mdiPlusCircle, mdiTrashCan, mdiUpload, mdiWeb } from '@mdi/js';
+ import { mdiCheckCircle, mdiCloseCircle, mdiDownload, mdiFolderOpen, mdiHelpCircle, mdiPencil, mdiPlusCircle, mdiTrashCan, mdiUpload, mdiWeb } from '@mdi/js';
import { siDiscord, siGithub } from 'simple-icons/icons';
import HelperText from '@smui/textfield/helper-text';
import LinearProgress from '@smui/linear-progress';
@@ -18,7 +18,7 @@
import { installs, profiles, canModify, selectedInstall, selectedInstallPath, selectedProfile, modsEnabled, progress } from '$lib/store/ficsitCLIStore';
import { error, siteURL } from '$lib/store/generalStore';
import { BrowserOpenURL, EventsOn } from '$wailsjs/runtime/runtime';
- import { OpenFileDialog } from '$wailsjs/go/bindings/App';
+ import { OpenExternal, OpenFileDialog } from '$wailsjs/go/bindings/App';
import type { ficsitcli } from '$wailsjs/go/models';
import { AddProfile, DeleteProfile, RenameProfile, ImportProfile, ExportCurrentProfile, ReadExportedProfileMetadata } from '$wailsjs/go/ficsitcli/FicsitCLI';
@@ -217,15 +217,20 @@
disabled={!$canModify}
>
{#each $installs as install}
-