Always-visible Feedback button (encouraging beta-feedback modal)

Summary

  • Adds an always-visible "Feedback / Beta" pill anchored mid-right of the viewport.
  • Click opens a feedback modal with encouraging copy + two window.open submission paths (Phabricator task pre-fill, or User talk:Daanvr edit form with body copied to clipboard) — reuses the v0.28.0 "Report this error" plumbing, no new OAuth scopes.
  • Mounted at <Root> level so it shows on every screen (login, loading, main app, boot-error). Narrow viewport collapses to icon + Beta pill.

Phabricator

  • T426454 — Always-visible Feedback button (encouraging beta-feedback modal)

Test plan

  • Floating "Feedback / Beta" pill is visible on the right edge, vertically centred, on the login screen.
  • Same pill stays visible after login and over the spreadsheet view.
  • Pill stays visible on the boot-error panel (deliberately overlaps with the existing "Report this error" button).
  • Click opens the feedback modal; comment textarea is autofocused.
  • Body preview updates as the comment changes; once you hand-edit the body, the auto-derive freezes (Reset button reappears to undo).
  • All three submit buttons (Copy text / Post to User talk:Daanvr / Open Phabricator task) are disabled until the comment is non-empty.
  • "Open Phabricator task" opens a new tab to https://phabricator.wikimedia.org/maniphest/task/edit/form/default/?... with the title and body pre-filled (project: tool-upload-workbench).
  • "Post to User talk:Daanvr" opens the Commons talk-page edit form with the section title pre-filled and the body on the clipboard (paste into the new section).
  • Esc closes; click on the backdrop closes; modal-backdrop covers the floating pill while open.
  • Narrow viewport (≤640px / mobile DevTools): pill collapses to just icon + "Beta" badge.
  • npm run build (incl. undefined-identifier scanner) passes.

🤖 Generated with Claude Code

Merge request reports

Loading