feat(block2): messages inbox + drawer 'Chat' link (was unreachable)

Chat was only reachable via an offer's 'Message' button, and the drawer 'Chat'
sat on 'coming soon' — so messaging/trust were effectively hidden.
- MessageStore keeps a conversation index (the keystore has no key enumeration)
  and exposes conversations() — peers newest-active-first with their last line.
- ChatListScreen: the messages inbox (tap a conversation → /chat/:pubkey).
- Drawer 'Chat' is now a live destination -> /messages (gated like Market).
- i18n en/es/pt. conversations() covered by a plain test (no widget hang).

Analyzer clean.
This commit is contained in:
vjrj 2026-07-10 12:26:33 +02:00
parent 6d16656911
commit 7f1c520960
12 changed files with 211 additions and 3 deletions

View file

@ -18,6 +18,7 @@ import 'state/inventory_cubit.dart';
import 'state/variety_detail_cubit.dart';
import 'ui/about_screen.dart';
import 'ui/auto_backup_gate.dart';
import 'ui/chat_list_screen.dart';
import 'ui/chat_screen.dart';
import 'ui/home_screen.dart';
import 'ui/intro_screen.dart';
@ -106,6 +107,11 @@ class TaneApp extends StatelessWidget {
outbox: outbox,
),
),
if (social != null && socialSettings != null && messageStore != null)
GoRoute(
path: '/messages',
builder: (context, state) => ChatListScreen(store: messageStore),
),
if (social != null && socialSettings != null)
GoRoute(
path: '/chat/:pubkey',