Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug: Popover API not supported #27479

Closed
Semigradsky opened this issue Oct 7, 2023 · 11 comments · Fixed by #27981
Closed

Bug: Popover API not supported #27479

Semigradsky opened this issue Oct 7, 2023 · 11 comments · Fixed by #27981

Comments

@Semigradsky
Copy link

About this API: https://developer.mozilla.org/en-US/docs/Web/API/Popover_API

React version: any

Steps To Reproduce

      <div popover id="my-popover">
        Greetings, one and all!
      </div>
      <button popovertarget="my-popover" popovertargetaction="show">
        Open Popover
      </button>
      <input
        type="button"
        popovertarget="my-popover"
        popovertargetaction="hide"
        value="Close Popover"
      />

Link to code example: https://codesandbox.io/s/popover-api-8x5nfq?file=/src/App.js

The current behavior

  • Error in console:

    Warning: Received true for a non-boolean attribute popover.

  • popover attribute wasn't added to div

It works if I change boolean atribute popover to popover="yes".

Also ESLint fails on unknown popover, popovertarget, popovertargetaction attributes.

@Semigradsky Semigradsky added the Status: Unconfirmed A potential issue that we haven't yet confirmed as a bug label Oct 7, 2023
@Dreadfullove
Copy link

Sure

@konstantinblaesi
Copy link

Login to Svelte REPL is broken if I enable this extension . The authenticating happens in a popup but you can also use it via https://svelte.dev/auth/login . Dev console logs some warnings related to popover API. Is svelte REPL using this API and react dev tools breaking this somehow ?

@eps1lon eps1lon added Component: DOM and removed Status: Unconfirmed A potential issue that we haven't yet confirmed as a bug labels Jan 17, 2024
@joshwcomeau
Copy link

joshwcomeau commented Apr 10, 2024

Hey folks! Any news on this?

A reliable polyfill is available for the Popover API, and some companies (eg. Github) are already using it in production. I tried using it in my app and spent 10 minutes trying to understand what I was doing wrong, before realizing that React itself didn't support it. I think this sort of confusion will only get more common as this API gets more attention.

Just wanted to share this experience since I know it can be hard to gauge the importance of different issues. Appreciate the work y'all do! ❤️

@eps1lon
Copy link
Collaborator

eps1lon commented Apr 11, 2024

Just need to bring this up internally so that we're aligned on prop naming. If anybody wants to test it out, you can install

react@https://react-builds.vercel.app/api/prs/27981/packages/react react-dom@https://react-builds.vercel.app/api/prs/27981/packages/react-dom

to test #27981

@jfbrennan
Copy link

Tried to use popover today. Doesn't work. Have to explicitly set a value despite the spec defining "auto" as default.

Honest question: What is the React team's plan to permanently fix this so developers can trust React will always comply with web standards?

Popover is another example among many throughout the years where React's non-compliance creates friction or outright fails to work with web standards. React has effectively recreated the situation we had with IE where one player with the biggest marketshare slows the whole community down. This is intolerable and not sustainable.

@jfbrennan
Copy link

Popover's toggle and beforetoggle events do not appear to work either:

<button popovertarget="myPopover">Toggle</button>
<div onToggle=${handlePopoverToggle} popover="auto" id="myPopover">Popover stuff</div> <-- Does not work

@acusti
Copy link
Contributor

acusti commented May 25, 2024

@jfbrennan if you use the latest react RC, all popover API attributes and event handlers are available and working. i'm using

@dominictobias
Copy link

dominictobias commented Jun 27, 2024

Why isn't this added to 18 too? Popover is available in all modern browsers and part of the standard

Screenshot 2024-06-27 at 1 31 01 PM

@peteruithoven
Copy link

Is there any change the Popover API can be backported to v18?

@teamteak
Copy link

teamteak commented Oct 23, 2024

Considering React 19 is delayed, can we not get this in React 18?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

10 participants