feat(chat): Restore dialog for on-chain-deleted conversations
Adds a "Restore" opener (shown when a delete is known from chain — so it works
on a wallet freshly restored from seed — or something is locally blocked) and a
Restore dialog that: lists chain-derived deleted conversations
(onChainDeletedConversations) each with a Restore button; accepts a pasted chat
(z) address, matched against the address each delete signal carries (else
treated as a raw cid); and offers Quick scan (noteWalletMutation → re-run the
change-gated scans → re-harvest control memos). Restoring clears any local
block/hide and broadcasts Control("res") so every device un-hides; the messages
re-import from chain on the next scan.
New English strings fall back cleanly until translated (chat_restore_*).
Phase A complete: protocol -> compose -> reducer -> broadcast -> delete+restore UI.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -321,6 +321,16 @@ void I18n::loadBuiltinEnglish()
|
||||
strings_["chat_blocked_desc"] = "Blocked conversations are removed and their messages are dropped — old and new — until you unblock. Unblocking re-imports the conversation from the chain.";
|
||||
strings_["chat_unblock"] = "Unblock";
|
||||
strings_["chat_unblocked_toast"] = "Conversation unblocked";
|
||||
strings_["chat_restore_manage"] = "Restore";
|
||||
strings_["chat_restore_title"] = "Restore conversations";
|
||||
strings_["chat_restore_desc"] = "Conversations you deleted everywhere can be brought back here - on this device or after importing your seed phrase. Restoring re-imports the messages from the chain and tells your other devices to show it again.";
|
||||
strings_["chat_restore_none"] = "No deleted conversations found yet. If you deleted one on another device, try Quick scan or paste its chat address below.";
|
||||
strings_["chat_restore_btn"] = "Restore";
|
||||
strings_["chat_restore_scan"] = "Quick scan";
|
||||
strings_["chat_restore_scanning"] = "Scanning the chain for deleted conversations...";
|
||||
strings_["chat_restore_toast"] = "Restoring conversation - it reappears after the next scan";
|
||||
strings_["chat_restore_paste_label"] = "Restore by chat address";
|
||||
strings_["chat_restore_paste_hint"] = "Paste the conversation's chat (z) address";
|
||||
strings_["chat_pick_contact"] = "Choose from contacts\xE2\x80\xA6";
|
||||
strings_["chat_no_z_contacts"] = "No shielded-address contacts yet";
|
||||
strings_["chat_contact_needs_z"] = "Needs a shielded (z) address to chat";
|
||||
|
||||
Reference in New Issue
Block a user