Skip to content

feat(sharing): unified document + list sharing screen (web parity) - #31

Merged
Adron merged 1 commit into
feat/shared-list-inbound-viewerfrom
feat/unified-sharing-parity
Aug 31, 2026
Merged

feat(sharing): unified document + list sharing screen (web parity)#31
Adron merged 1 commit into
feat/shared-list-inbound-viewerfrom
feat/unified-sharing-parity

Conversation

@Adron

@Adron Adron commented Aug 31, 2026

Copy link
Copy Markdown
Member

Stacked on #30 (base = feat/shared-list-inbound-viewer). Merge #30 first, then retarget this to main.

Summary

Brings iOS document (and list) sharing to parity with the web's single "Access & Permissions" screen. The capabilities existed but were scattered across separate sheets (Share / Invite by email / Collaborators / Watchers) with the public toggle buried in Edit — which is why it "didn't appear to show up." This replaces them with one SharingView, generic over documents (collaborators) and lists (watchers).

What's included

  • Access & Permissions: search + "Role for new users" + an "Email this person" toggle (the notify flag; default on) + a members list with role menu, per-user Get link, and Remove.
  • Invite by email (pending + revoke) and Share links (roles labeled Viewer/Editor/Admin; expiry presets Never / 7d / 30d).
  • Make public toggle with a copyable canonical public link.
  • Foundations: WatcherRole.accessLabel/linkLabel, ShareExpiryPreset, ILWebURL.publicResource/resource, and notify added to the list addWatcher/setWatcherRole (documents already had it).
  • DocumentsView/ListsView now open the single SharingView.

Testing

  • Build: succeeded.
  • Full unit suite (excl. live E2E): 819 passing, 0 failures (+10 new: role labels, expiry presets, watcher notify body, ILWebURL builders).

Caveats

  • The live screen (search/add/toggle/public-link) is owner-only behind login, not runtime-verified here — worth an on-device or qa-screenshotter pass.
  • The old sharing views (DocumentCollaboratorsView, WatchersListView, ShareLinksSheet, ShareInvitesSheet) are now orphaned; removal left as a follow-up.

🤖 Generated with Claude Code

https://claude.ai/code/session_01V16mvNBWyYLncSQL8isDNF

Replaces the scattered Share / Invite by email / Collaborators / Watchers sheets
with one SharingView mirroring the web "Access & Permissions" page, for both
documents (collaborators) and lists (watchers).

- Access & Permissions: search + "Role for new users" + an "Email this person"
  toggle (the notify flag, default on) + members list with role menu, per-user
  "Get link", and Remove.
- Invite by email (pending + revoke) and Share links (Viewer/Editor/Admin labels,
  Never/7d/30d expiry presets) + a Make-public toggle with a copyable public link.
- Foundations: WatcherRole.accessLabel/linkLabel, ShareExpiryPreset,
  ILWebURL.publicResource/resource, and notify on addWatcher/setWatcherRole
  (documents already had it).
- DocumentsView and ListsView now open the single SharingView.
- Tests: role labels, expiry presets, watcher notify body, ILWebURL builders.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01V16mvNBWyYLncSQL8isDNF
@Adron
Adron merged commit 99757ce into feat/shared-list-inbound-viewer Aug 31, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant