From bdeec921defdc4ca078c2bbf32e1d9b07b2d19e7 Mon Sep 17 00:00:00 2001
From: Silberengel
Date: Sun, 24 May 2026 09:58:00 +0200
Subject: [PATCH] add QR codes to the payment modal
---
package.json | 2 +-
src/components/PaytoDialog/index.tsx | 16 +
src/i18n/locales/cs.ts | 4681 +++++++++++++-----------
src/i18n/locales/de.ts | 4857 ++++++++++++++-----------
src/i18n/locales/en.ts | 4960 ++++++++++++++------------
src/i18n/locales/es.ts | 4701 +++++++++++++-----------
src/i18n/locales/fr.ts | 4702 +++++++++++++-----------
src/i18n/locales/nl.ts | 4681 +++++++++++++-----------
src/i18n/locales/pl.ts | 4700 +++++++++++++-----------
src/i18n/locales/ru.ts | 4702 +++++++++++++-----------
src/i18n/locales/tr.ts | 4681 +++++++++++++-----------
src/i18n/locales/zh.ts | 4683 +++++++++++++-----------
src/lib/payto-targets.test.ts | 9 +
13 files changed, 26508 insertions(+), 20867 deletions(-)
diff --git a/package.json b/package.json
index 2eef8234..d4204bda 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "imwald",
- "version": "23.15.1",
+ "version": "23.16.0",
"description": "Imwald — a user-friendly Nostr client focused on relay feed browsing, publications, and relay discovery",
"private": true,
"type": "module",
diff --git a/src/components/PaytoDialog/index.tsx b/src/components/PaytoDialog/index.tsx
index 7f992d25..15d492f3 100644
--- a/src/components/PaytoDialog/index.tsx
+++ b/src/components/PaytoDialog/index.tsx
@@ -36,6 +36,7 @@ import { cn } from '@/lib/utils'
import { useNostr } from '@/providers/NostrProvider'
import { mergePostPaymentContext, type PostPaymentContext } from '@/lib/post-payment-context'
import { NostrEvent } from 'nostr-tools'
+import QrCode from '@/components/QrCode'
import LightningInvoiceSection from './LightningInvoiceSection'
export default function PaytoDialog({
@@ -170,6 +171,9 @@ export default function PaytoDialog({
[isLightning, type, authority]
)
+ /** Wallet deep link (`bitcoin:…`) or funding page URL — not the payto:// URI. */
+ const qrPayload = walletOpenUri ?? authority
+
const showPrimaryOpen = isLikelyMobileWalletUserAgent() && !!walletOpenUri
const handleOpenWallet = () => {
@@ -229,6 +233,18 @@ export default function PaytoDialog({
{authority}
+
+
+
+
+
+ {t('Scan to pay with your wallet')}
+
+
{showPrimaryOpen && walletOpenUri ? (