From d60697c8d1cc0b862d7488be4cf8ee21cafdfd1d Mon Sep 17 00:00:00 2001 From: Adam Soltys Date: Sun, 2 Aug 2026 22:41:39 -0700 Subject: Push notifications for payments and messages; offline Spending notice MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The nwcpush notifier grows a second registration kind alongside NWC: a notify watch of what it can see without keys — kind-1059 wraps p-tagged at the user (DMs, direct invites), zap receipts (9735/9737), and wraps authored by the user's community channel keys (chat). It pushes a typed nudge, throttled per device (chat bursts collapse); the service worker shows a generic notification unless a window is visible, and tapping opens the app. The names registrar reports settled lightning-address receives server-to-server (token-gated /notify), so the common payment path notifies even with no nostr event in sight. The app registers silently whenever permission is already granted and keeps the watch current as communities change; a dismissible card on the chat home offers to enable it otherwise. Ark zap receipts (9737) join the relay whitelist so the payment watch can see them. Also: the offline Spending receive pane now says you're offline and offers a one-tap switch to Savings instead of spinning forever. Co-Authored-By: Claude Fable 5 Claude-Session: https://claude.ai/code/session_01Wvj4aoeMZwA7VUGdJP9Swi --- src/i18n.js | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src/i18n.js') diff --git a/src/i18n.js b/src/i18n.js index 550a231..2afe232 100644 --- a/src/i18n.js +++ b/src/i18n.js @@ -169,6 +169,10 @@ const STR = { msgOpen: 'Open', msgNpubPlaceholder: 'npub…', msgSearchPlaceholder: 'Name or npub…', + msgPushOffer: 'Get notified when you receive payments and messages, even with coinos closed.', + msgPushEnable: 'Enable notifications', + msgPushOn: 'Notifications on', + msgPushFailed: 'Could not enable notifications', msgChannelPlaceholder: 'New channel name', msgOwnerOnly: 'Only the community owner can do that', profEdit: 'Edit profile', @@ -207,6 +211,8 @@ const STR = { settingsNetwork: 'Network', advancedSettings: 'Advanced', recoveryDesc: 'The twelve words that back up this wallet. Anyone who sees them can steal your funds.', + receiveOfflineSpending: "You're offline — your payment address needs the network. You can still receive to Savings with an on-chain address.", + receiveUseSavings: 'Switch to Savings', arkOffboardAmtPlaceholder: 'Amount', arkSplitting: 'Carving out that exact amount — this can take a minute…', arkSplitTimeout: 'The split is taking longer than expected — your balance is intact; try again shortly.', -- cgit v1.2.3