v0.6.46: Protection first + safe dialog dismiss; Shares wording + Transfers-style rows; folder-share Download all (#271) #276

Merged
Cordy merged 3 commits from feat/run46 into main 2026-08-18 20:22:46 +00:00
Owner

Four items from the dogfood run:

  1. Share dialog — Protection label + explanation move to the top of the card, above Expires; the password and upload checkboxes sit together below.
  2. Dialog dismiss bug — the global #171 wiring closed any dialog when a click targeted the dialog element itself — which happens both for clicks on the dialog's own padding (e.g. around the Protection text) and for text-selection drags whose synthesized click lands on the dialog. Now dismissal requires the pointer to go down AND up on the actual backdrop (outside the dialog's box, coordinate-checked).
  3. Shares page — badges reworded: password protected, key-in-link, file drop enabled. The v0.6.42 .sharerow card CSS (the "boxes within boxes") is removed; rows render exactly like the Transfers page (plain sharepath/sharemeta rows with base separators).
  4. #271 follow-up: deliberate folder downloadsrenderListing emits a per-file Download button and, for multi-file shares, a Download all button with progress. Strong shares fetch ?payload=1 ciphertext and decrypt in the browser via age.js with the link's fragment key (secure-context guarded); plain shares fetch directly; legacy password-mode shares are excluded (their click-through viewer flow remains). Buttons only render post-gate, so nothing changes for locked shares before the password.
Four items from the dogfood run: 1. **Share dialog** — Protection label + explanation move to the top of the card, above Expires; the password and upload checkboxes sit together below. 2. **Dialog dismiss bug** — the global #171 wiring closed any dialog when a `click` targeted the dialog element itself — which happens both for clicks on the dialog's own *padding* (e.g. around the Protection text) and for text-selection drags whose synthesized click lands on the dialog. Now dismissal requires the pointer to go down AND up on the actual backdrop (outside the dialog's box, coordinate-checked). 3. **Shares page** — badges reworded: `password protected`, `key-in-link`, `file drop enabled`. The v0.6.42 `.sharerow` card CSS (the "boxes within boxes") is removed; rows render exactly like the Transfers page (plain `sharepath`/`sharemeta` rows with base separators). 4. **#271 follow-up: deliberate folder downloads** — `renderListing` emits a per-file Download button and, for multi-file shares, a Download all button with progress. Strong shares fetch `?payload=1` ciphertext and decrypt in the browser via age.js with the link's fragment key (secure-context guarded); plain shares fetch directly; legacy password-mode shares are excluded (their click-through viewer flow remains). Buttons only render post-gate, so nothing changes for locked shares before the password.
Cordy merged commit 40b2ed87ee into main 2026-08-18 20:22:46 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: Cordy/Cairn#276
No description provided.