Skip to content

Web: add a Hide secret control to the unlocked vault #185

Description

@Maxerns

Why this is a good first issue

After a user reveals a secret in VaultView, the value stays visible until they select another secret, change project/environment, or leave the vault. Add an explicit way to dismiss the revealed value while keeping the current environment open.

This is a focused React interaction in web/src/VaultView.tsx, using its existing revealed state.

What to do

  • Add a keyboard-accessible Hide secret button to the revealed-secret section.
  • Activating it removes that section, including any generated share-link textarea, and clears the selected secret's aria-current state. Keep the current project, environment and secret list available.
  • Allow the user to reveal the same secret again from the list.
  • Return keyboard focus to the secret's list button when hiding, so removing the focused Hide button does not strand keyboard navigation.
  • Ensure a share request that was already pending when Hide was activated cannot bring the dismissed value back into view when it completes. Preserve a newly selected secret if the old request completes later.

This is a display control: it does not lock the vault, revoke existing links, or promise secure erasure from browser memory. Do not label it as doing those things.

Done when

  • A browser check reveals a fixture secret, hides it, verifies the value/link fields are absent, and reveals it again.
  • A delayed share-response check confirms that hiding stays effective after the request completes.
  • Verify keyboard activation and focus return.
  • Add checks to web/e2e/funnel.spec.ts using the existing fixture and helpers; setup is documented in web/e2e/README.md.
  • From web/, run npm run build:wasm, npm run typecheck, npm run build, and the relevant browser checks.

Scope

Do not change RecipientPage: one-time recipients have different recovery constraints. Do not add timers, clipboard handling, server calls on Hide, or crypto changes. Preserve accessible field labels from #173 if that issue lands first; both tasks touch the revealed-secret section.

Use British English and plain hyphens. Link this issue in the PR and sign off commits with git commit -s, following CONTRIBUTING.md.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions