From 46b4893d2d8afd081de686d31ccd51e337cb6fd6 Mon Sep 17 00:00:00 2001 From: Hibryda Date: Sun, 22 Mar 2026 11:48:47 +0100 Subject: [PATCH] fix(electrobun): fix PathBrowser process.env.HOME, add dual browse buttons MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - PathBrowser: resolveHome() via files.homeDir RPC (was process.env.HOME) - ProjectWizard: two browse buttons — 📂 native dialog + 🔍 in-app browser - In-app browser uses display toggle (rule 55), dirs-only filter - Native dialog: Electrobun Utils.openFileDialog (GTK chooser) - In-app browser: themed, dirs sorted first, proper breadcrumbs --- ui-electrobun/src/mainview/PathBrowser.svelte | 15 +++++++++++++-- ui-electrobun/src/mainview/ProjectWizard.svelte | 7 +++++++ 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/ui-electrobun/src/mainview/PathBrowser.svelte b/ui-electrobun/src/mainview/PathBrowser.svelte index 75fcdbf..07303a7 100644 --- a/ui-electrobun/src/mainview/PathBrowser.svelte +++ b/ui-electrobun/src/mainview/PathBrowser.svelte @@ -9,7 +9,7 @@ let { onSelect, onClose }: Props = $props(); - const HOME = '/home/' + (typeof window !== 'undefined' ? '' : ''); + let HOME = $state('/home'); const SHORTCUTS = [ { label: 'Home', path: '~' }, { label: 'Desktop', path: '~/Desktop' }, @@ -40,11 +40,22 @@ entries.filter(e => e.type === 'dir' && (filter === '' || e.name.toLowerCase().includes(filter.toLowerCase()))) ); + // Load home dir from backend on first use + async function resolveHome(): Promise { + if (HOME !== '/home') return HOME; + try { + const r = await appRpc.request['files.homeDir']({}); + if (r?.path) HOME = r.path; + } catch {} + return HOME; + } + async function loadDir(dirPath: string) { loading = true; error = ''; try { - const expandedPath = dirPath.replace(/^~/, process.env.HOME ?? '/home'); + const home = await resolveHome(); + const expandedPath = dirPath.replace(/^~/, home); const result = await appRpc.request['files.list']({ path: expandedPath }); if (result?.error) { error = result.error; diff --git a/ui-electrobun/src/mainview/ProjectWizard.svelte b/ui-electrobun/src/mainview/ProjectWizard.svelte index 7008787..9119403 100644 --- a/ui-electrobun/src/mainview/ProjectWizard.svelte +++ b/ui-electrobun/src/mainview/ProjectWizard.svelte @@ -293,13 +293,20 @@ bind:value={localPath} oninput={() => validatePath(localPath)} /> + {#if pathValid !== 'idle'} {validationIcon(pathValid)} {/if} +
+ showBrowser = false} /> +
{#if pathValid === 'valid' && isGitRepo} {t('wizard.step1.gitDetected' as any)} ({gitBranch}) {/if}