Skip to content

Landing page: show a helpful message when copying the install command fails #172

Description

@Maxerns

Why this is a good first issue

The CopyButton in web/src/Landing.tsx calls navigator.clipboard.writeText(text) and only handles success. When the clipboard API is unavailable or the browser rejects the write, the user gets no explanation and the handler throws or leaves an unhandled rejection.

This is a small React/TypeScript task on the public landing page. No account or cryptography changes are needed.

What to do

  • Handle both an unavailable clipboard API and a rejected clipboard write.
  • Show a short, accessible message asking the user to select and copy the command manually when copying fails. Keep the command selectable.
  • Only show Copied after a successful write. Keep the existing two-second success reset, and allow retrying after a failure.
  • Clear stale failure feedback after a successful retry.

Start in web/src/Landing.tsx, at CopyButton. Browser checks live in web/e2e/funnel.spec.ts; its landing-page tests are useful examples. The current Playwright config discovers that spec, so place regression cases there.

Done when

  • Browser regression checks cover success, rejected writes, an unavailable clipboard API, and successful retry. Override the browser clipboard API in the test to make these deterministic.
  • The failure message is visible and exposed to assistive technology, with no unhandled browser error.
  • From web/, run npm run build:wasm, npm run typecheck, npm run build, and the relevant Playwright checks using the setup in web/e2e/README.md.

Scope

Keep the installer command and clipboard permissions unchanged. No new clipboard dependency or deprecated copy fallback is needed. Keep the initial landing-page copy consistent with its static snapshot in web/vite.config.ts if you change initial markup or text. This is independent of the Windows installer issue #140.

Use British English and plain hyphens. Link this issue in the PR and sign off commits with git commit -s as described in CONTRIBUTING.md.

Activity

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

    bugSomething isn't workinggood first issueGood for newcomershelp wantedExtra attention is needed

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions