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 {