feat(chat): the preview's button knows whether it can be pressed
Phase 4 of docs/npub-profile-preview.md. Phases 1-3 moved the twenty-second dead end one screen later: a person found on an indexer, a press, and InitiatingNewChat waiting for a key package that someone who has never opened Curare will never have published. The preview now reads the answer before the press. A room that already exists opens; a key package that is here enables "Start new chat"; one that is not, once the relays have had their time, disables it with the reason under it and a try-again that asks the DM relays alone. The existing-room check was a loop with a TODO inside initiateNewChat; it is ChatRepository.findDirectMessageRoom now -- a room whose members are exactly the two keys, or the one key when they are the same -- read by both screens and pinned by a test on an in-memory database. The old size-one branch would have opened any room the peer sat in alone, whoever they were. Both halves are observed together, as the chat screen does: a key package arriving after the profile touches a different table, and a collect on the profile alone would never see it. A room is read once up front, because a key package is meant to be used once and the relays need not hold a fresh one for someone you already talk to. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Pulled-From: curated/curated@d649098504
This commit is contained in:
@@ -488,4 +488,7 @@
|
||||
<string name="find_profile">Find profile</string>
|
||||
<string name="looking_for_this_profile_on_the_relays">Looking for this profile on the relays.</string>
|
||||
<string name="start_new_chat">Start new chat</string>
|
||||
<string name="you_already_have_a_chat_with_s">You already have a chat with %1$s.</string>
|
||||
<string name="checking_whether_s_can_receive_messages_here">Checking whether %1$s can receive messages here.</string>
|
||||
<string name="s_hasn_t_set_up_messaging_on_mantra_yet">%1$s hasn't set up messaging on Mantra yet. Try again later, or ask them to open Mantra.</string>
|
||||
</resources>
|
||||
|
||||
Reference in New Issue
Block a user