Skip to content

Phone: toast covers the selection sheet's last row; 'Move to trash' cannot be tapped #405

Closed

Description

@BeSovereign

Where: web/src/styles/app.css:894-909 (.toast is fixed at bottom: var(--space-3), z-index 9) and the fixed .selection-bar sheet at the bottom (app.css:679-685, z-index 3).

Steps (Pixel 7, en):

  1. In a folder, open Upload ⌄ → New folder, type "Sub" and press Enter.
  2. The new folder is selected, so the selection sheet shows, and the toast "Created folder Sub" appears at 761-827 px.
  3. The sheet's last button, "Move to trash", sits at 783-827 px. elementFromPoint at its centre hits the toast, so it cannot be tapped.

A success toast hides the button for 5 s. An error toast (such as "0 of 1 copied") stays until it is closed (DESIGN.md, "Toast"), so the destructive action stays hidden that long. The upload toast covers the last list row in the same way.

Expected: On phone width the toast sits above the selection sheet, and every action in the sheet stays reachable.

Fix: On phone width, set the toast to bottom: calc(var(--selection-bar-height, 0px) + var(--space-3)). FolderPane already measures the sheet's height into --selection-bar-height (FolderPane.vue:730); set that variable on an ancestor the toast also sits under, such as <html> or the app shell, while a selection exists.

Test (Playwright, mobile project): Create a folder through the Upload menu (it gets selected and the toast shows). Assert that the toast's bounding box does not intersect the box of .selection-bar, and that a trial click on "Move to trash" succeeds. Fails today.


Found by the automatic review round (claude-opus-5-5, b739414); per CLAUDE.md the fix starts with a failing behaviour test.

Activity

  1. added
    rebuildPart of the ground-up rebuild (spec 2026-10-14)
    qaFound by exploratory QA (dogfooding)
    on Oct 20, 2026
  2. added a commit that references this issue on Oct 20, 2026
  3. BeSovereign commented on Oct 20, 2026

    @BeSovereign
    ContributorAuthor

    Fixed: PR #414 squash-merged into main after green CI (one commit; git revert it to undo).

    • Suites: typecheck: 1 passed, 0 failed | lint: 1 passed, 0 failed | unit: 1187 passed, 0 failed | e2e: 607 passed, 0 failed
    • Declared tests fail without the production change and pass with it (output in the PR).
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

    qaFound by exploratory QA (dogfooding)rebuildPart of the ground-up rebuild (spec 2026-10-14)

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions