feat: Add Properties tab to react-wallet#189
Merged
Conversation
Add a new Properties tab for viewing and editing DID document data. Supports add, edit, and delete for owned DIDs; read-only for others. Also fixes pre-existing Buffer-to-BlobPart type errors in DmailTab and VaultTab. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Same Properties tab as react-wallet: view/edit DID document data with read-only mode for non-owned DIDs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add Properties tab to both gatekeeper and keymaster web clients with the same DID selector, add/edit/delete controls, and read-only mode for non-owned DIDs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Contributor
There was a problem hiding this comment.
Pull request overview
Adds a new “Properties” UI across Keymaster/Gatekeeper clients and the React Wallet + Chrome extension, enabling viewing and editing of didDocumentData properties, and fixes binary download Blob creation for vault items and DMail attachments.
Changes:
- Add a new “Properties” tab to
KeymasterUI.js(Keymaster + Gatekeeper clients) with CRUD operations backed bykeymaster.mergeData. - Introduce
PropertiesTab.tsxand wire it into navigation in bothapps/react-walletandapps/chrome-extension. - Fix file download Blob construction by wrapping ArrayBuffer-like data in
Uint8Arraybefore creating aBlob.
Reviewed changes
Copilot reviewed 8 out of 8 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| services/keymaster/client/src/KeymasterUI.js | Adds a Properties tab UI for viewing/adding/editing/removing DID document data properties. |
| services/gatekeeper/client/src/KeymasterUI.js | Mirrors the Properties tab UI in the Gatekeeper client. |
| apps/react-wallet/src/components/VaultTab.tsx | Fixes Blob creation for downloaded vault items. |
| apps/react-wallet/src/components/DmailTab.tsx | Fixes Blob creation for downloaded DMail attachments. |
| apps/react-wallet/src/components/PropertiesTab.tsx | New Properties tab component (React Wallet) to manage didDocumentData. |
| apps/react-wallet/src/BrowserContent.tsx | Wires the new Properties tab into tabs and “More” navigation. |
| apps/chrome-extension/src/components/PropertiesTab.tsx | New Properties tab component (Chrome extension) to manage didDocumentData. |
| apps/chrome-extension/src/components/BrowserContent.tsx | Wires the new Properties tab into the extension sidebar/tab panels. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Clear editing, delete modal, and add form state when switching DIDs to prevent stale state from applying to the wrong DID. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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.
Summary
resolveDIDmetadata)Buffer-to-BlobParttype errors in DmailTab and VaultTabCloses #184
Test plan
🤖 Generated with Claude Code