feat(block2): messaging UI — private 1:1 chat (NIP-17)

- MessagesCubit: 1:1 conversation over MessageTransport. Filters the shared
  inbox to the peer; tags our own sends with our pubkey (NIP-17 wraps don't come
  back to the sender) so the UI can align bubbles; degrades gracefully offline.
- ChatScreen (mockup 10): message bubbles (mine right / peer left) + a composer;
  opens a session lazily, shows 'set up sharing' when there's no relay.
- Entry point: a 'Message' button on each offer card (hidden on your own
  listings) → /chat/:pubkey.
- Routing + i18n en/es/pt.

Tests: 5 cubit (send/receive/order/filter/offline) + chat offline + market, green.
This commit is contained in:
vjrj 2026-07-10 10:59:47 +02:00
parent 0dd7c28039
commit efd64c4da4
13 changed files with 627 additions and 9 deletions

View file

@ -342,6 +342,7 @@
"searching": "Looking around your area…",
"empty": "No seeds shared near you yet",
"near": "Near you",
"contact": "Message",
"configTitle": "Sharing setup",
"setupIntro": "Sharing with people nearby is optional. To turn it on, set your rough area and join a community you trust — a seed network or collective that runs a shared meeting point for passing messages. No company in the middle.",
"areaLabel": "Your area",
@ -358,5 +359,12 @@
"useLocation": "Use my approximate location",
"locationFailed": "Couldn't get your location",
"queued": "Saved — we'll share these when you're connected"
},
"chat": {
"title": "Chat",
"hint": "Write a message…",
"send": "Send",
"empty": "No messages yet — say hello",
"offline": "Set up sharing to send messages"
}
}