Skip to content

Conversation

TrevorBurnham
Copy link
Contributor

Description

This PR is a fix for the longstanding visual glitch when clicking CopyToClipboard: Instead of briefly showing the popover in a "Pending" state, it uses the Permissions API ahead of time to determine whether the clipboard API is likely to succeed, then optimistically shows the popover in the "Success" or "Error" state depending on that value.

This has the advantage that the user gets immediate feedback that will be correct virtually every time, rather than having to wait for the async Clipboard API to resolve. The downside is that edge cases are possible: A user could disable clipboard permissions after the CopyToClipboard component renders, for instance, in which case the popover would incorrectly show a success message for a moment before showing an error message. I think this edge case behavior is acceptable, given the tradeoffs imposed on us by the async Clipboard API.

This is a simpler alternative to the previously-suggested fix at #3443.

How has this been tested?

I've run the dev server and clicked around in the CopyToClipboard demos. It's a much, much smoother experience with the immediate feedback this PR provides.

Review checklist

The following items are to be evaluated by the author(s) and the reviewer(s).

Correctness

  • Changes include appropriate documentation updates.
  • Changes are backward-compatible if not indicated, see CONTRIBUTING.md.
  • Changes do not include unsupported browser features, see CONTRIBUTING.md.
  • Changes were manually tested for accessibility, see accessibility guidelines.

Security

Testing

  • Changes are covered with new/existing unit tests?
  • Changes are covered with new/existing integration tests?

By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@TrevorBurnham TrevorBurnham requested a review from a team as a code owner September 12, 2025 22:53
@TrevorBurnham TrevorBurnham requested review from taheramr and removed request for a team September 12, 2025 22:53
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