FriendsOfFlarum / discussion-language

Specify the language a discussion is written in & sort by language
MIT License
6 stars 2 forks source link

Modals stop working if composer opened both tags and language modals before #33

Open clarkwinkelmann opened 2 years ago

clarkwinkelmann commented 2 years ago

Bug Report

Current Behavior If you cause 2 modals to open during discussion composing, all modals open after the discussion is created are broken until the single page app is reloaded. No errors appear in the console.

Steps to Reproduce

  1. Open new discussion composer
  2. Fill title and content but leave language and tags empty
  3. Language modal appears, select a language
  4. Tags modal appears, select a tag
  5. On the new discussion page, click "rename", "edit tags" or other modals like FoF Mason

The modals that open on the new discussion page can't be closed by clicking the backdrop or the cross icon. Title edit doesn't work and spins forever. Tag edit works but the modal never closes.

No error is logged to the javascript console. Backend errors are irrelevant since no requests are made when the error occurs.

Environment

Flarum core 1.5.0
PHP version: 8.0.23
MySQL version: 8.0.30-0ubuntu0.20.04.2
Loaded extensions: Core, date, libxml, openssl, pcre, zlib, filter, hash, json, pcntl, Reflection, SPL, session, standard, sodium, mysqlnd, PDO, xml, calendar, ctype, curl, dom, mbstring, FFI, fileinfo, ftp, gd, gettext, iconv, intl, exif, mysqli, pdo_mysql, pdo_sqlite, Phar, posix, readline, shmop, SimpleXML, sockets, sqlite3, sysvmsg, sysvsem, sysvshm, tokenizer, xmlreader, xmlwriter, xsl, zip, Zend OPcache
+-------------------------+------------+------------------------------------------+
| Flarum Extensions       |            |                                          |
+-------------------------+------------+------------------------------------------+
| ID                      | Version    | Commit                                   |
+-------------------------+------------+------------------------------------------+
| flarum-tags             | v1.5.0     |                                          |
| flarum-flags            | v1.5.0     |                                          |
| fof-discussion-language | dev-master | 5dadbf8297eefb28f27da3c7e4ae52b7500ee3a1 |
| flarum-suspend          | v1.5.0     |                                          |
| flarum-subscriptions    | v1.5.0     |                                          |
| flarum-sticky           | v1.5.0     |                                          |
| flarum-statistics       | v1.5.0     |                                          |
| flarum-mentions         | v1.5.0     |                                          |
| flarum-markdown         | v1.5.0     |                                          |
| flarum-lock             | v1.5.0     |                                          |
| flarum-likes            | v1.5.0     |                                          |
| flarum-lang-english     | v1.5.0     |                                          |
| flarum-emoji            | v1.5.0     |                                          |
| flarum-bbcode           | v1.5.0     |                                          |
| flarum-approval         | v1.5.0     |                                          |
+-------------------------+------------+------------------------------------------+
Base URL: http://1.5.flarum.localhost
Installation path: /home/clark/Projects/flarum-1.5
Queue driver: sync
Mail driver: smtp
Debug mode: ON

Possible solution(s) I'm really not sure what's going on. I haven't tried back on Flarum 1.4 to check if it's a stackable modal change that causes this.

I tried with both regular and admin users, both have the issue.

Originally I thought my Composer Page extension caused the issue but I was able to disable everything else and still reproduce.

I'm not sure it's specific to Discussion Language, it might just be because 2 modals are open in close succession, or maybe because one modal is still being closed while the page changes.

I suspect maybe the new stackable modal context feature freaks out and keeps the context on a modal that no longer exists, preventing to interact with any other modal.

Note: modals can still be closed via app.modal.close() in the browser console. No errors when running that command either.