Use shields for encryption status, keep locks for unreadable content#915
Merged
Conversation
The chat header showed a ShieldCheck for a verified peer while every one of that peer's messages showed a plain Lock, so the same encryption relationship read as two different symbols. Split the two metaphors consistently: - Shield = the conversation's encryption/trust status (per-message timestamp indicator, ChatHeader, composer reminder bar, contact-profile security panel). - Lock = content you can't read right now (encrypted/undecryptable placeholders, reply-quote-hidden chip, and your own passphrase-locked key). Colors still route through trustVisual(); only the glyphs changed.
The header's encrypted-unverified state now renders <Shield/> instead of <Lock/>; the manual lucide-react mock in ChatView.test.tsx only stubbed Lock/ShieldCheck, so the icon resolved to undefined and the render threw. Add Shield/ShieldAlert/ShieldOff/ShieldX stubs.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The chat header showed a
ShieldCheckfor a verified peer while every one of that peer's messages showed a plainLock— the same encryption relationship read as two different symbols.This splits the two metaphors consistently across the conversation surfaces:
ChatHeader, composer reminder bar, and the contact-profile security panel (ShieldCheck/Shield/ShieldAlert/ShieldX/ShieldOffby state).Colors still route through
trustVisual(); only the glyphs changed.