From 1d21f471c975da56f49f503dd0d401f08e600e4d Mon Sep 17 00:00:00 2001 From: Silberengel Date: Sat, 4 Apr 2026 18:13:17 +0200 Subject: [PATCH] fix electron side-panel banner --- package-lock.json | 4 ++-- package.json | 2 +- src/constants.ts | 11 +++++++++++ 3 files changed, 14 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index b656d6fd..3936b55f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "imwald", - "version": "22.0.1", + "version": "22.0.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "imwald", - "version": "22.0.1", + "version": "22.0.2", "license": "MIT", "dependencies": { "@asciidoctor/core": "^3.0.4", diff --git a/package.json b/package.json index 7d6870e2..77278bd3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "imwald", - "version": "22.0.1", + "version": "22.0.2", "description": "Imwald — a user-friendly Nostr client focused on relay feed browsing, publications, and relay discovery", "private": true, "type": "module", diff --git a/src/constants.ts b/src/constants.ts index 0683ccea..81e37e8c 100644 --- a/src/constants.ts +++ b/src/constants.ts @@ -34,9 +34,20 @@ export const HIVETALK_BASE_URL = /** * URL for a file from `public/` (banner, favicon, payto logos, etc.). * Uses Vite `base`: `/` on the web, `./` when built for Electron (`loadFile` + `file:`). + * + * Electron packaged builds use `file:` + client-side history paths like `/notes/…`, which replace + * the document URL with `file:///notes/…`. Relative `BASE_URL` links would then resolve next to that + * bogus path and 404. Resolve from this module's emitted chunk (`dist/assets/*.js`) instead. */ export function publicAssetUrl(assetPath: string): string { const trimmed = assetPath.replace(/^\//, '') + if (typeof window !== 'undefined' && window.location.protocol === 'file:') { + try { + return new URL(`../../${trimmed}`, import.meta.url).href + } catch { + // fall through to BASE_URL + } + } return `${import.meta.env.BASE_URL}${trimmed}` }