Commit 986f25c
agent: @U0AJM7X8FBR Admin Codebase - Hide Sensitive Info Toggle
• actual: email (#17)
* feat: add HideProvider with sensitive info toggle
Adds a global Eye/EyeOff toggle button (fixed top-right) that masks all
email fields across the admin dashboard when activated.
- New HideProvider context + useHide hook
- New maskEmail utility (e.g. "jo***@ex***.com")
- HideToggle component wired into global Providers
- privyLoginsColumns, sandboxesColumns, AccountReposList all respect isHidden
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
* fix: hide toggle only when authenticated
Prevents the toggle from overlapping the sign-in button
on the login page.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* refactor: move hide toggle into header, simplify to icon only
- HideToggle is now icon-only (no button background, no label)
- Moved from fixed position in Providers to LoginButton header
(next to email and sign out)
- Extracted EmailCell to its own component file (SRP)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* refactor: shared root layout, fix PR review comments
- AppHeader with LoginButton + HideToggle in root layout (all pages)
- Removed duplicate header from HomePage
- Fixed title tooltips to use masked email when hidden
- Extracted AccountEmailCell from sandboxesColumns (SRP)
- Extracted LastSeenCell from privyLoginsColumns (SRP)
- Moved maskEmail to lib/hide/maskEmail.ts
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: address PR review comments
- HideToggle: added aria-label, aria-pressed, type=button
- LoginButton: mask header email when hidden
- DRY: created useDisplayEmail hook, used by EmailCell,
AccountEmailCell, AccountReposList, LoginButton
- LastSeenCell: use == null instead of falsy check for timestamp 0
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* refactor: move HideToggle from LoginButton to AppHeader (SRP)
LoginButton should only handle login/logout. The visibility
toggle is a header-level concern.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* refactor: move components to subdirectories, extract AccountRepoLink
- AppHeader → components/Header/AppHeader.tsx
- HideToggle → components/Header/HideToggle.tsx
- ApiDocsLink → components/ApiDocs/ApiDocsLink.tsx
- Extracted AccountRepoLink from AccountReposList (SRP)
- Updated all imports
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* feat: add blink animation to hide toggle
On click: eye closes (scaleY 0), icon swaps, eye opens (scaleY 1).
150ms transition for a natural blink effect.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: center HomeContent vertically on the page
Made <main> a flex column container so child flex-1 items-center
can properly fill the remaining height.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix: smooth blink open animation
Keep scaleY(0) when icon swaps, then animate to scaleY(1) on the
next frame so the opening is a smooth transition instead of a flash.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
---------
Co-authored-by: Recoup Agent <agent@recoupable.com>
Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>1 parent 02228e5 commit 986f25c
21 files changed
Lines changed: 247 additions & 54 deletions
File tree
- app
- components
- ApiDocs
- Header
- Home
- Login
- PrivyLogins
- SandboxOrgs
- Sandboxes
- lib/hide
- providers
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | 3 | | |
| 4 | + | |
4 | 5 | | |
5 | 6 | | |
6 | 7 | | |
| |||
32 | 33 | | |
33 | 34 | | |
34 | 35 | | |
35 | | - | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
36 | 44 | | |
37 | 45 | | |
38 | 46 | | |
| |||
File renamed without changes.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
2 | 1 | | |
3 | 2 | | |
4 | 3 | | |
5 | 4 | | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
| 5 | + | |
| 6 | + | |
14 | 7 | | |
15 | 8 | | |
16 | 9 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
5 | 6 | | |
6 | 7 | | |
7 | 8 | | |
8 | 9 | | |
| 10 | + | |
9 | 11 | | |
10 | 12 | | |
11 | 13 | | |
| |||
15 | 17 | | |
16 | 18 | | |
17 | 19 | | |
18 | | - | |
| 20 | + | |
19 | 21 | | |
20 | 22 | | |
21 | 23 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
| 5 | + | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| |||
0 commit comments