diff --git a/package-lock.json b/package-lock.json
index 2dbd78fe..5906dfab 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,12 +1,12 @@
{
"name": "imwald",
- "version": "23.10.3",
+ "version": "23.11.2",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "imwald",
- "version": "23.10.3",
+ "version": "23.11.2",
"license": "MIT",
"dependencies": {
"@asciidoctor/core": "^3.0.4",
diff --git a/package.json b/package.json
index 8db40305..cc1cf275 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "imwald",
- "version": "23.11.1",
+ "version": "23.11.2",
"description": "Imwald — a user-friendly Nostr client focused on relay feed browsing, publications, and relay discovery",
"private": true,
"type": "module",
diff --git a/public/payto_logos/BNB.png b/src/assets/payto_logos/BNB.png
similarity index 100%
rename from public/payto_logos/BNB.png
rename to src/assets/payto_logos/BNB.png
diff --git a/public/payto_logos/EurC.png b/src/assets/payto_logos/EurC.png
similarity index 100%
rename from public/payto_logos/EurC.png
rename to src/assets/payto_logos/EurC.png
diff --git a/public/payto_logos/LBTC.svg b/src/assets/payto_logos/LBTC.svg
similarity index 100%
rename from public/payto_logos/LBTC.svg
rename to src/assets/payto_logos/LBTC.svg
diff --git a/public/payto_logos/Litecoin.png b/src/assets/payto_logos/Litecoin.png
similarity index 100%
rename from public/payto_logos/Litecoin.png
rename to src/assets/payto_logos/Litecoin.png
diff --git a/public/payto_logos/Monero.png b/src/assets/payto_logos/Monero.png
similarity index 100%
rename from public/payto_logos/Monero.png
rename to src/assets/payto_logos/Monero.png
diff --git a/public/payto_logos/README.md b/src/assets/payto_logos/README.md
similarity index 78%
rename from public/payto_logos/README.md
rename to src/assets/payto_logos/README.md
index befa7498..263a90d9 100644
--- a/public/payto_logos/README.md
+++ b/src/assets/payto_logos/README.md
@@ -5,3 +5,5 @@ Icons for payment types (crypto, etc.) used by payto links.
**Supported formats:** SVG, GIF, JPG/JPEG, PNG, WebP, etc. — any format the browser can display in `
` is fine. SVG scales best at different sizes.
Filenames are mapped in `src/lib/payto.ts` → `PAYTO_LOGO_FILES`. Use whatever extension the asset has (.svg, .gif, .jpg, .png, …).
+
+Bundled via Vite (`import.meta.glob`) so URLs live under `/assets/` and deploy with the app build.
diff --git a/public/payto_logos/Tron.png b/src/assets/payto_logos/Tron.png
similarity index 100%
rename from public/payto_logos/Tron.png
rename to src/assets/payto_logos/Tron.png
diff --git a/public/payto_logos/XRP.gif b/src/assets/payto_logos/XRP.gif
similarity index 100%
rename from public/payto_logos/XRP.gif
rename to src/assets/payto_logos/XRP.gif
diff --git a/public/payto_logos/apple_pay.svg b/src/assets/payto_logos/apple_pay.svg
similarity index 100%
rename from public/payto_logos/apple_pay.svg
rename to src/assets/payto_logos/apple_pay.svg
diff --git a/public/payto_logos/apple_pay.webp b/src/assets/payto_logos/apple_pay.webp
similarity index 100%
rename from public/payto_logos/apple_pay.webp
rename to src/assets/payto_logos/apple_pay.webp
diff --git a/public/payto_logos/bitcoin-cash-bch-logo.svg b/src/assets/payto_logos/bitcoin-cash-bch-logo.svg
similarity index 100%
rename from public/payto_logos/bitcoin-cash-bch-logo.svg
rename to src/assets/payto_logos/bitcoin-cash-bch-logo.svg
diff --git a/public/payto_logos/buymeacoffee.png b/src/assets/payto_logos/buymeacoffee.png
similarity index 100%
rename from public/payto_logos/buymeacoffee.png
rename to src/assets/payto_logos/buymeacoffee.png
diff --git a/public/payto_logos/cashapp.webp b/src/assets/payto_logos/cashapp.webp
similarity index 100%
rename from public/payto_logos/cashapp.webp
rename to src/assets/payto_logos/cashapp.webp
diff --git a/public/payto_logos/dogecoin-doge-logo.svg b/src/assets/payto_logos/dogecoin-doge-logo.svg
similarity index 100%
rename from public/payto_logos/dogecoin-doge-logo.svg
rename to src/assets/payto_logos/dogecoin-doge-logo.svg
diff --git a/public/payto_logos/ethereum-eth-logo.svg b/src/assets/payto_logos/ethereum-eth-logo.svg
similarity index 100%
rename from public/payto_logos/ethereum-eth-logo.svg
rename to src/assets/payto_logos/ethereum-eth-logo.svg
diff --git a/public/payto_logos/geyser_fund.webp b/src/assets/payto_logos/geyser_fund.webp
similarity index 100%
rename from public/payto_logos/geyser_fund.webp
rename to src/assets/payto_logos/geyser_fund.webp
diff --git a/public/payto_logos/github_sponsors.png b/src/assets/payto_logos/github_sponsors.png
similarity index 100%
rename from public/payto_logos/github_sponsors.png
rename to src/assets/payto_logos/github_sponsors.png
diff --git a/public/payto_logos/gofundme.jpeg b/src/assets/payto_logos/gofundme.jpeg
similarity index 100%
rename from public/payto_logos/gofundme.jpeg
rename to src/assets/payto_logos/gofundme.jpeg
diff --git a/public/payto_logos/google_pay.jpeg b/src/assets/payto_logos/google_pay.jpeg
similarity index 100%
rename from public/payto_logos/google_pay.jpeg
rename to src/assets/payto_logos/google_pay.jpeg
diff --git a/public/payto_logos/google_pay.png b/src/assets/payto_logos/google_pay.png
similarity index 100%
rename from public/payto_logos/google_pay.png
rename to src/assets/payto_logos/google_pay.png
diff --git a/public/payto_logos/kickstarter.webp b/src/assets/payto_logos/kickstarter.webp
similarity index 100%
rename from public/payto_logos/kickstarter.webp
rename to src/assets/payto_logos/kickstarter.webp
diff --git a/public/payto_logos/ko-fi.png b/src/assets/payto_logos/ko-fi.png
similarity index 100%
rename from public/payto_logos/ko-fi.png
rename to src/assets/payto_logos/ko-fi.png
diff --git a/public/payto_logos/multi-collateral-dai-dai-logo.svg b/src/assets/payto_logos/multi-collateral-dai-dai-logo.svg
similarity index 100%
rename from public/payto_logos/multi-collateral-dai-dai-logo.svg
rename to src/assets/payto_logos/multi-collateral-dai-dai-logo.svg
diff --git a/public/payto_logos/patreon.png b/src/assets/payto_logos/patreon.png
similarity index 100%
rename from public/payto_logos/patreon.png
rename to src/assets/payto_logos/patreon.png
diff --git a/public/payto_logos/paypal.webp b/src/assets/payto_logos/paypal.webp
similarity index 100%
rename from public/payto_logos/paypal.webp
rename to src/assets/payto_logos/paypal.webp
diff --git a/public/payto_logos/revolut.webp b/src/assets/payto_logos/revolut.webp
similarity index 100%
rename from public/payto_logos/revolut.webp
rename to src/assets/payto_logos/revolut.webp
diff --git a/public/payto_logos/solana.png b/src/assets/payto_logos/solana.png
similarity index 100%
rename from public/payto_logos/solana.png
rename to src/assets/payto_logos/solana.png
diff --git a/public/payto_logos/tether-usdt-logo.svg b/src/assets/payto_logos/tether-usdt-logo.svg
similarity index 100%
rename from public/payto_logos/tether-usdt-logo.svg
rename to src/assets/payto_logos/tether-usdt-logo.svg
diff --git a/public/payto_logos/usd-coin-usdc-logo.svg b/src/assets/payto_logos/usd-coin-usdc-logo.svg
similarity index 100%
rename from public/payto_logos/usd-coin-usdc-logo.svg
rename to src/assets/payto_logos/usd-coin-usdc-logo.svg
diff --git a/public/payto_logos/venmo.png b/src/assets/payto_logos/venmo.png
similarity index 100%
rename from public/payto_logos/venmo.png
rename to src/assets/payto_logos/venmo.png
diff --git a/src/lib/payto-logos.ts b/src/lib/payto-logos.ts
new file mode 100644
index 00000000..18329bd4
--- /dev/null
+++ b/src/lib/payto-logos.ts
@@ -0,0 +1,61 @@
+/**
+ * Explicit Vite `?url` imports so every payto logo is emitted under `/assets/` in production.
+ * Keep files in `src/assets/payto_logos/` (not `public/`).
+ */
+import applePaySvg from '../assets/payto_logos/apple_pay.svg?url'
+import bitcoinCashLogo from '../assets/payto_logos/bitcoin-cash-bch-logo.svg?url'
+import bnbPng from '../assets/payto_logos/BNB.png?url'
+import buyMeACoffeePng from '../assets/payto_logos/buymeacoffee.png?url'
+import cashappWebp from '../assets/payto_logos/cashapp.webp?url'
+import daiLogo from '../assets/payto_logos/multi-collateral-dai-dai-logo.svg?url'
+import dogecoinLogo from '../assets/payto_logos/dogecoin-doge-logo.svg?url'
+import ethLogo from '../assets/payto_logos/ethereum-eth-logo.svg?url'
+import eurocPng from '../assets/payto_logos/EurC.png?url'
+import geyserWebp from '../assets/payto_logos/geyser_fund.webp?url'
+import githubSponsorsPng from '../assets/payto_logos/github_sponsors.png?url'
+import gofundmeJpeg from '../assets/payto_logos/gofundme.jpeg?url'
+import googlePayJpeg from '../assets/payto_logos/google_pay.jpeg?url'
+import kickstarterWebp from '../assets/payto_logos/kickstarter.webp?url'
+import kofiPng from '../assets/payto_logos/ko-fi.png?url'
+import lbtcSvg from '../assets/payto_logos/LBTC.svg?url'
+import litecoinPng from '../assets/payto_logos/Litecoin.png?url'
+import moneroPng from '../assets/payto_logos/Monero.png?url'
+import patreonPng from '../assets/payto_logos/patreon.png?url'
+import paypalWebp from '../assets/payto_logos/paypal.webp?url'
+import revolutWebp from '../assets/payto_logos/revolut.webp?url'
+import solanaPng from '../assets/payto_logos/solana.png?url'
+import tetherLogo from '../assets/payto_logos/tether-usdt-logo.svg?url'
+import tronPng from '../assets/payto_logos/Tron.png?url'
+import usdcLogo from '../assets/payto_logos/usd-coin-usdc-logo.svg?url'
+import venmoPng from '../assets/payto_logos/venmo.png?url'
+import xrpGif from '../assets/payto_logos/XRP.gif?url'
+
+export const PAYTO_LOGO_URL_BY_FILENAME: Record = {
+ 'apple_pay.svg': applePaySvg,
+ 'bitcoin-cash-bch-logo.svg': bitcoinCashLogo,
+ 'BNB.png': bnbPng,
+ 'buymeacoffee.png': buyMeACoffeePng,
+ 'cashapp.webp': cashappWebp,
+ 'multi-collateral-dai-dai-logo.svg': daiLogo,
+ 'dogecoin-doge-logo.svg': dogecoinLogo,
+ 'ethereum-eth-logo.svg': ethLogo,
+ 'EurC.png': eurocPng,
+ 'geyser_fund.webp': geyserWebp,
+ 'github_sponsors.png': githubSponsorsPng,
+ 'gofundme.jpeg': gofundmeJpeg,
+ 'google_pay.jpeg': googlePayJpeg,
+ 'kickstarter.webp': kickstarterWebp,
+ 'ko-fi.png': kofiPng,
+ 'LBTC.svg': lbtcSvg,
+ 'Litecoin.png': litecoinPng,
+ 'Monero.png': moneroPng,
+ 'patreon.png': patreonPng,
+ 'paypal.webp': paypalWebp,
+ 'revolut.webp': revolutWebp,
+ 'solana.png': solanaPng,
+ 'tether-usdt-logo.svg': tetherLogo,
+ 'Tron.png': tronPng,
+ 'usd-coin-usdc-logo.svg': usdcLogo,
+ 'venmo.png': venmoPng,
+ 'XRP.gif': xrpGif
+}
diff --git a/src/lib/payto.ts b/src/lib/payto.ts
index 175177fc..af935fb2 100644
--- a/src/lib/payto.ts
+++ b/src/lib/payto.ts
@@ -3,7 +3,7 @@
* Parse and normalize payto:/// URIs; known types for UI (icons, labels, dialogs).
*/
-import { publicAssetUrl } from '@/constants'
+import { PAYTO_LOGO_URL_BY_FILENAME } from '@/lib/payto-logos'
export const PAYTO_URI_REGEX = /payto:\/\/([a-z0-9-]+)\/([^\s\]\)\<\"']+)/gi
@@ -112,7 +112,7 @@ export function getPaytoIconChar(type: string): string | null {
return info?.symbol ?? null
}
-/** Logo filename in /payto_logos/ for types that have an asset. Any image format works: .svg, .gif, .jpg, .png, .webp, etc. */
+/** Logo filename in `src/assets/payto_logos/` for types that have an asset. Any image format works: .svg, .gif, .jpg, .png, .webp, etc. */
const PAYTO_LOGO_FILES: Record = {
liquid: 'LBTC.svg',
lbtc: 'LBTC.svg',
@@ -169,10 +169,10 @@ export function getPaytoProfileUrl(type: string, authority: string): string | nu
}
export function getPaytoLogoPath(type: string): string | null {
- const key = type.toLowerCase()
+ const key = getCanonicalPaytoType(type)
const file = PAYTO_LOGO_FILES[key]
if (!file) return null
- return publicAssetUrl(`payto_logos/${file}`)
+ return PAYTO_LOGO_URL_BY_FILENAME[file] ?? null
}
export function getPaytoTypeInfo(type: string): (typeof PAYTO_KNOWN_TYPES)[string] | undefined {