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 {