From 477fe5afea099d84520149fb3e6ae6616ca8d7c1 Mon Sep 17 00:00:00 2001 From: Silberengel Date: Sat, 4 Apr 2026 17:51:33 +0200 Subject: [PATCH] fix image rendering in electron --- electron/main.cjs | 16 ++++++++++++++++ package-lock.json | 4 ++-- package.json | 4 ++-- src/assets/Icon.tsx | 3 ++- src/assets/Logo.tsx | 3 ++- src/components/Note/index.tsx | 4 ++-- src/components/QrCode/index.tsx | 3 ++- src/constants.ts | 9 +++++++++ src/lib/payto.ts | 4 +++- 9 files changed, 40 insertions(+), 10 deletions(-) diff --git a/electron/main.cjs b/electron/main.cjs index d7d50f12..49836995 100644 --- a/electron/main.cjs +++ b/electron/main.cjs @@ -1,11 +1,26 @@ 'use strict' const { app, BrowserWindow, ipcMain, shell } = require('electron') +const fs = require('fs') const path = require('path') /** True when running from source (`electron .`); false when packaged. */ const isDev = !app.isPackaged +function resolveWindowIcon() { + const candidates = isDev + ? [path.join(__dirname, '..', 'public', 'favicon.png')] + : [path.join(__dirname, '..', 'dist', 'favicon.png')] + for (const p of candidates) { + try { + if (fs.existsSync(p)) return p + } catch { + // ignore + } + } + return undefined +} + function loadRenderer(win) { if (isDev) { const devUrl = process.env.VITE_DEV_SERVER_URL || 'http://127.0.0.1:5173' @@ -25,6 +40,7 @@ function createWindow() { minWidth: 400, minHeight: 500, show: false, + icon: resolveWindowIcon(), webPreferences: { preload: path.join(__dirname, 'preload.cjs'), contextIsolation: true, diff --git a/package-lock.json b/package-lock.json index 69a9e870..b656d6fd 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "imwald", - "version": "22.0.0", + "version": "22.0.1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "imwald", - "version": "22.0.0", + "version": "22.0.1", "license": "MIT", "dependencies": { "@asciidoctor/core": "^3.0.4", diff --git a/package.json b/package.json index a9c69449..e8962f9c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "imwald", - "version": "22.0.0", + "version": "22.0.1", "description": "Imwald — a user-friendly Nostr client focused on relay feed browsing, publications, and relay discovery", "private": true, "type": "module", @@ -156,7 +156,7 @@ ], "category": "Network", "maintainer": "Silberengel", - "icon": "build/icon.png" + "icon": "public/favicon.png" } }, "overrides": { diff --git a/src/assets/Icon.tsx b/src/assets/Icon.tsx index 493f986d..ed998ea2 100644 --- a/src/assets/Icon.tsx +++ b/src/assets/Icon.tsx @@ -1,10 +1,11 @@ +import { publicAssetUrl } from '@/constants' import { cn } from '@/lib/utils' /** Compact mark for narrow sidebar (from `public/favicon.png`). */ export default function Icon({ className }: { className?: string }) { return ( / URIs; known types for UI (icons, labels, dialogs). */ +import { publicAssetUrl } from '@/constants' + export const PAYTO_URI_REGEX = /payto:\/\/([a-z0-9-]+)\/([^\s\]\)\<\"']+)/gi export interface ParsedPayto { @@ -162,7 +164,7 @@ export function getPaytoLogoPath(type: string): string | null { const key = type.toLowerCase() const file = PAYTO_LOGO_FILES[key] if (!file) return null - return `/payto_logos/${file}` + return publicAssetUrl(`payto_logos/${file}`) } export function getPaytoTypeInfo(type: string): (typeof PAYTO_KNOWN_TYPES)[string] | undefined {