Browse Source

fix URLs for logos

imwald
Silberengel 4 weeks ago
parent
commit
fcc64f8c61
  1. 4
      package-lock.json
  2. 2
      package.json
  3. 0
      src/assets/payto_logos/BNB.png
  4. 0
      src/assets/payto_logos/EurC.png
  5. 0
      src/assets/payto_logos/LBTC.svg
  6. 0
      src/assets/payto_logos/Litecoin.png
  7. 0
      src/assets/payto_logos/Monero.png
  8. 2
      src/assets/payto_logos/README.md
  9. 0
      src/assets/payto_logos/Tron.png
  10. 0
      src/assets/payto_logos/XRP.gif
  11. 0
      src/assets/payto_logos/apple_pay.svg
  12. 0
      src/assets/payto_logos/apple_pay.webp
  13. 0
      src/assets/payto_logos/bitcoin-cash-bch-logo.svg
  14. 0
      src/assets/payto_logos/buymeacoffee.png
  15. 0
      src/assets/payto_logos/cashapp.webp
  16. 0
      src/assets/payto_logos/dogecoin-doge-logo.svg
  17. 0
      src/assets/payto_logos/ethereum-eth-logo.svg
  18. 0
      src/assets/payto_logos/geyser_fund.webp
  19. 0
      src/assets/payto_logos/github_sponsors.png
  20. 0
      src/assets/payto_logos/gofundme.jpeg
  21. 0
      src/assets/payto_logos/google_pay.jpeg
  22. 0
      src/assets/payto_logos/google_pay.png
  23. 0
      src/assets/payto_logos/kickstarter.webp
  24. 0
      src/assets/payto_logos/ko-fi.png
  25. 0
      src/assets/payto_logos/multi-collateral-dai-dai-logo.svg
  26. 0
      src/assets/payto_logos/patreon.png
  27. 0
      src/assets/payto_logos/paypal.webp
  28. 0
      src/assets/payto_logos/revolut.webp
  29. 0
      src/assets/payto_logos/solana.png
  30. 0
      src/assets/payto_logos/tether-usdt-logo.svg
  31. 0
      src/assets/payto_logos/usd-coin-usdc-logo.svg
  32. 0
      src/assets/payto_logos/venmo.png
  33. 61
      src/lib/payto-logos.ts
  34. 8
      src/lib/payto.ts

4
package-lock.json generated

@ -1,12 +1,12 @@
{ {
"name": "imwald", "name": "imwald",
"version": "23.10.3", "version": "23.11.2",
"lockfileVersion": 3, "lockfileVersion": 3,
"requires": true, "requires": true,
"packages": { "packages": {
"": { "": {
"name": "imwald", "name": "imwald",
"version": "23.10.3", "version": "23.11.2",
"license": "MIT", "license": "MIT",
"dependencies": { "dependencies": {
"@asciidoctor/core": "^3.0.4", "@asciidoctor/core": "^3.0.4",

2
package.json

@ -1,6 +1,6 @@
{ {
"name": "imwald", "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", "description": "Imwald — a user-friendly Nostr client focused on relay feed browsing, publications, and relay discovery",
"private": true, "private": true,
"type": "module", "type": "module",

0
public/payto_logos/BNB.png → src/assets/payto_logos/BNB.png

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

0
public/payto_logos/EurC.png → src/assets/payto_logos/EurC.png

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

0
public/payto_logos/LBTC.svg → src/assets/payto_logos/LBTC.svg

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

0
public/payto_logos/Litecoin.png → src/assets/payto_logos/Litecoin.png

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 2.4 KiB

0
public/payto_logos/Monero.png → src/assets/payto_logos/Monero.png

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

2
public/payto_logos/README.md → 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 `<img>` is fine. SVG scales best at different sizes. **Supported formats:** SVG, GIF, JPG/JPEG, PNG, WebP, etc. — any format the browser can display in `<img>` 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, …). 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.

0
public/payto_logos/Tron.png → src/assets/payto_logos/Tron.png

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

0
public/payto_logos/XRP.gif → src/assets/payto_logos/XRP.gif

Before

Width:  |  Height:  |  Size: 148 KiB

After

Width:  |  Height:  |  Size: 148 KiB

0
public/payto_logos/apple_pay.svg → src/assets/payto_logos/apple_pay.svg

Before

Width:  |  Height:  |  Size: 660 B

After

Width:  |  Height:  |  Size: 660 B

0
public/payto_logos/apple_pay.webp → src/assets/payto_logos/apple_pay.webp

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 6.2 KiB

0
public/payto_logos/bitcoin-cash-bch-logo.svg → src/assets/payto_logos/bitcoin-cash-bch-logo.svg

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.2 KiB

0
public/payto_logos/buymeacoffee.png → src/assets/payto_logos/buymeacoffee.png

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

0
public/payto_logos/cashapp.webp → src/assets/payto_logos/cashapp.webp

Before

Width:  |  Height:  |  Size: 3.0 KiB

After

Width:  |  Height:  |  Size: 3.0 KiB

0
public/payto_logos/dogecoin-doge-logo.svg → src/assets/payto_logos/dogecoin-doge-logo.svg

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 56 KiB

0
public/payto_logos/ethereum-eth-logo.svg → src/assets/payto_logos/ethereum-eth-logo.svg

Before

Width:  |  Height:  |  Size: 1.3 KiB

After

Width:  |  Height:  |  Size: 1.3 KiB

0
public/payto_logos/geyser_fund.webp → src/assets/payto_logos/geyser_fund.webp

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.9 KiB

0
public/payto_logos/github_sponsors.png → src/assets/payto_logos/github_sponsors.png

Before

Width:  |  Height:  |  Size: 3.2 KiB

After

Width:  |  Height:  |  Size: 3.2 KiB

0
public/payto_logos/gofundme.jpeg → src/assets/payto_logos/gofundme.jpeg

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 3.1 KiB

0
public/payto_logos/google_pay.jpeg → src/assets/payto_logos/google_pay.jpeg

Before

Width:  |  Height:  |  Size: 5.2 KiB

After

Width:  |  Height:  |  Size: 5.2 KiB

0
public/payto_logos/google_pay.png → src/assets/payto_logos/google_pay.png

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

0
public/payto_logos/kickstarter.webp → src/assets/payto_logos/kickstarter.webp

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

0
public/payto_logos/ko-fi.png → src/assets/payto_logos/ko-fi.png

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

0
public/payto_logos/multi-collateral-dai-dai-logo.svg → src/assets/payto_logos/multi-collateral-dai-dai-logo.svg

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

0
public/payto_logos/patreon.png → src/assets/payto_logos/patreon.png

Before

Width:  |  Height:  |  Size: 34 KiB

After

Width:  |  Height:  |  Size: 34 KiB

0
public/payto_logos/paypal.webp → src/assets/payto_logos/paypal.webp

Before

Width:  |  Height:  |  Size: 3.9 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

0
public/payto_logos/revolut.webp → src/assets/payto_logos/revolut.webp

Before

Width:  |  Height:  |  Size: 1.5 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

0
public/payto_logos/solana.png → src/assets/payto_logos/solana.png

Before

Width:  |  Height:  |  Size: 7.0 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

0
public/payto_logos/tether-usdt-logo.svg → src/assets/payto_logos/tether-usdt-logo.svg

Before

Width:  |  Height:  |  Size: 874 B

After

Width:  |  Height:  |  Size: 874 B

0
public/payto_logos/usd-coin-usdc-logo.svg → src/assets/payto_logos/usd-coin-usdc-logo.svg

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

0
public/payto_logos/venmo.png → src/assets/payto_logos/venmo.png

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

61
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<string, string> = {
'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
}

8
src/lib/payto.ts

@ -3,7 +3,7 @@
* Parse and normalize payto://<type>/<authority> URIs; known types for UI (icons, labels, dialogs). * Parse and normalize payto://<type>/<authority> 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 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 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<string, string> = { const PAYTO_LOGO_FILES: Record<string, string> = {
liquid: 'LBTC.svg', liquid: 'LBTC.svg',
lbtc: '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 { export function getPaytoLogoPath(type: string): string | null {
const key = type.toLowerCase() const key = getCanonicalPaytoType(type)
const file = PAYTO_LOGO_FILES[key] const file = PAYTO_LOGO_FILES[key]
if (!file) return null 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 { export function getPaytoTypeInfo(type: string): (typeof PAYTO_KNOWN_TYPES)[string] | undefined {

Loading…
Cancel
Save