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

blank popup #176

Open
turbocrime opened this issue Aug 24, 2024 · 1 comment
Open

blank popup #176

turbocrime opened this issue Aug 24, 2024 · 1 comment
Labels
bug Something isn't working ui Related to user interface or ux design

Comments

@turbocrime
Copy link
Contributor

turbocrime commented Aug 24, 2024

Describe the bug
Some users will see a blank popup instead of a popup with content.

To Reproduce
Steps to reproduce the behavior:

  1. Open two chrome windows.
  2. in one window, click the prax icon to manually activate the prax attached popup.
  3. in the other window, visit a frontend and perform an action that will trigger a prax dialog popup.
  4. the triggered dialog popup will open.
  5. sometimes, the triggered dialog popup will render a blank page until closed.

Expected behavior
The dialog popup should display something.

Screenshots

Screenshot 2024-08-24 at 01 04 31

Additional context

this is due to a race condition between promiscuous listeners attached by every popup.

the types of the popups do not matter, but a common situation is a manually opened 'attached popup' in one window which has lost focus but still persists, and an affected 'dialog popup' automatically opened by another window later.

the popup-root listener is attached by every popup regardless of route or content. any popup-root listener will claim any detected popup control message, and any incoming request is consumed by the first listener to claim it. each listener persists after activation and may activate again.

when a dialog remains blank, the wrong popup has handled the message. you can inspect the zustand state of the receiving popup to see the message data, and activate the function stored there to respond to the message. closing the receiving popup will fail the message.

the blank popup will not contain the input message and can't respond.

a popup will not clobber or mutate its state upon a repeat message of the same type - the handler will claim the message, but the slice will presently throw if asked to store another request of the same type.

a popup will not render UI that might respond to an unexpected message of a different type - the handler will claim the message, and the slice will successfully store it. but the routes activate specific components, and those components refer to slices which are unambiguous.

i don't know what determines listener activation sequence.

the present work on #174 does not affect this issue.

@turbocrime turbocrime added the bug Something isn't working label Aug 24, 2024
@github-project-automation github-project-automation bot moved this to 🗄️ Backlog in Labs web Aug 24, 2024
@turbocrime turbocrime added the ui Related to user interface or ux design label Aug 24, 2024
@grod220 grod220 moved this from 🗄️ Backlog to 📝 Todo in Labs web Aug 26, 2024
@turbocrime
Copy link
Contributor Author

@grod220 grod220 moved this from 🏗 In progress to 📝 Todo in Labs web Sep 12, 2024
@grod220 grod220 moved this from 📝 Todo to 🗄️ Backlog in Labs web Sep 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working ui Related to user interface or ux design
Projects
Status: 🗄️ Backlog
Development

No branches or pull requests

1 participant