Skip to content

Explicit "Share" verb for vaults — a real share sheet, and unify the two invite panels #68

Description

@kipavy

Part of the team-ux initiative (brainstorm 2026-07-24).

Relates: #41.

Problem

There is no "share this vault" action. A vault becomes shared as a side effect of inviting a member from its Members page: handlePrivateAdd in MembersPage.tsx silently createTeam(vault.name), links it, initTeamVaultKey, and converts the private vault into a team/cloud vault — with no confirmation and no explanation. Users may not realize a "team" now exists or that their vault is now synced/shared.

There are also two divergent invite panelsInvitePanel (existing team vaults) and PrivateVaultInvitePanel (not-yet-team vaults) — with slightly different role sets; inconsistent.

Proposed reflow

  • Add an explicit "Share" verb on a vault (sidebar context menu + Members page), opening a share sheet (Google-Docs-style, single mental model):
    • People with access + their roles (add/change/remove in one place).
    • Invite by in-app user search or email (one unified control, clear which is which).
    • On first share of a private vault, an explicit moment: "Sharing turns <vault> into a team vault — it will sync to the cloud and become accessible to people you add. Continue?" — no more silent conversion.
  • Unify InvitePanel + PrivateVaultInvitePanel into one component with one role set, parameterized by whether the vault is already a team vault.

Decisions (brainstorm 2026-07-24)

  • Explicit verb + explicit conversion consent — the private→team change is significant (cloud sync, key distribution) and must not be a hidden side effect.
  • Single share surface reused everywhere a resource can be shared (aligns with the overall "one mental model" goal).

Still open

Metadata

Metadata

Assignees

No one assigned

    Labels

    designUI/UX design & interactionenhancementNew feature or requestteam-uxTeam & collaboration UX flows (sessions, vaults, invites, presence)

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions