daattali / shinyalert

🗯️ Easily create pretty popup messages (modals) in Shiny
https://daattali.com/shiny/shinyalert-demo/
Other
241 stars 26 forks source link

conflict between wizardR and shinyalert: wizard loses lock/unlock controls when shinyalert is triggered #85

Closed mauromiguelm closed 5 months ago

mauromiguelm commented 5 months ago

Hello,

First, thanks for the open source contributions!

Summary:

I am seeing some conflicts of shinyalerts with wizardR. When any instance of shinyalert is opened in a shiny session, wizardR loses the ability to lock/unlock the wizard.

We see that when a shinyalert is loaded, the wizard is incorrectly initialized, pointing to some conflict between the two packages. See chrome console log below.

If you could point towards a solution, I will be happy to take over!

Example:

You can find a REPREX here: https://github.com/mauromiguelm/wizardR/tree/bug-shinyalert or you can install directly with R -e 'devtools::install_github("mauromiguelm/wizardR@bug-shinyalert")'

Once package is installed, run make dev

logs:

Click to expand full log ``` javascript wizard : This item is already defined tooltip.ts:90 Uncaught TypeError: Cannot read properties of null (reading 'content') at ee.connectedCallback (tooltip.ts:90:48) at Object.cleanEvents (wizard.min.js:1:14434) at Wizard.init (wizard.min.js:1:2555) at e.initialize (main.js:16:12) at w (init.ts:228:29) at init.ts:313:11 at m (init.ts:2:1357) at Generator. (init.ts:2:4174) at Generator.next (init.ts:2:2208) at h0 (init.ts:32:99) connectedCallback @ tooltip.ts:90 cleanEvents @ wizard.min.js:1 init @ wizard.min.js:1 initialize @ main.js:16 w @ init.ts:228 (anonymous) @ init.ts:313 m @ init.ts:2 (anonymous) @ init.ts:2 (anonymous) @ init.ts:2 h0 @ init.ts:32 s @ init.ts:33 (anonymous) @ init.ts:33 (anonymous) @ init.ts:33 Tl @ init.ts:471 y0 @ init.ts:47 (anonymous) @ index.ts:58 setTimeout (async) (anonymous) @ index.ts:56 e @ jquery.js:3766 t @ jquery.js:3834 setTimeout (async) (anonymous) @ jquery.js:3872 c @ jquery.js:3500 fireWith @ jquery.js:3630 fire @ jquery.js:3638 c @ jquery.js:3500 fireWith @ jquery.js:3630 ready @ jquery.js:4110 B @ jquery.js:4120 tooltip.ts:90 Uncaught TypeError: Cannot read properties of null (reading 'content') at ee.connectedCallback (tooltip.ts:90:48) at Object.cleanEvents (wizard.min.js:1:14434) at Wizard.init (wizard.min.js:1:2555) at e.initialize (main.js:16:12) at w (init.ts:228:29) at init.ts:313:11 at m (init.ts:2:1357) at Generator. (init.ts:2:4174) at Generator.next (init.ts:2:2208) at h0 (init.ts:32:99) connectedCallback @ tooltip.ts:90 cleanEvents @ wizard.min.js:1 init @ wizard.min.js:1 initialize @ main.js:16 w @ init.ts:228 (anonymous) @ init.ts:313 m @ init.ts:2 (anonymous) @ init.ts:2 (anonymous) @ init.ts:2 h0 @ init.ts:32 s @ init.ts:33 (anonymous) @ init.ts:33 (anonymous) @ init.ts:33 Tl @ init.ts:471 y0 @ init.ts:47 (anonymous) @ index.ts:58 setTimeout (async) (anonymous) @ index.ts:56 e @ jquery.js:3766 t @ jquery.js:3834 setTimeout (async) (anonymous) @ jquery.js:3872 c @ jquery.js:3500 fireWith @ jquery.js:3630 fire @ jquery.js:3638 c @ jquery.js:3500 fireWith @ jquery.js:3630 ready @ jquery.js:4110 B @ jquery.js:4120 tooltip.ts:90 Uncaught TypeError: Cannot read properties of null (reading 'content') at ee.connectedCallback (tooltip.ts:90:48) at Object.cleanEvents (wizard.min.js:1:14434) at Wizard.init (wizard.min.js:1:2555) at e.initialize (main.js:16:12) at w (init.ts:228:29) at init.ts:313:11 at m (init.ts:2:1357) at Generator. (init.ts:2:4174) at Generator.next (init.ts:2:2208) at h0 (init.ts:32:99) connectedCallback @ tooltip.ts:90 cleanEvents @ wizard.min.js:1 init @ wizard.min.js:1 initialize @ main.js:16 w @ init.ts:228 (anonymous) @ init.ts:313 m @ init.ts:2 (anonymous) @ init.ts:2 (anonymous) @ init.ts:2 h0 @ init.ts:32 s @ init.ts:33 (anonymous) @ init.ts:33 (anonymous) @ init.ts:33 Tl @ init.ts:471 y0 @ init.ts:47 (anonymous) @ index.ts:58 setTimeout (async) (anonymous) @ index.ts:56 e @ jquery.js:3766 t @ jquery.js:3834 setTimeout (async) (anonymous) @ jquery.js:3872 c @ jquery.js:3500 fireWith @ jquery.js:3630 fire @ jquery.js:3638 c @ jquery.js:3500 fireWith @ jquery.js:3630 ready @ jquery.js:4110 B @ jquery.js:4120 tooltip.ts:90 Uncaught TypeError: Cannot read properties of null (reading 'content') at ee.connectedCallback (tooltip.ts:90:48) at Object.cleanEvents (wizard.min.js:1:14434) at Wizard.init (wizard.min.js:1:2555) at e.initialize (main.js:16:12) at w (init.ts:228:29) at init.ts:313:11 at m (init.ts:2:1357) at Generator. (init.ts:2:4174) at Generator.next (init.ts:2:2208) at h0 (init.ts:32:99) connectedCallback @ tooltip.ts:90 cleanEvents @ wizard.min.js:1 init @ wizard.min.js:1 initialize @ main.js:16 w @ init.ts:228 (anonymous) @ init.ts:313 m @ init.ts:2 (anonymous) @ init.ts:2 (anonymous) @ init.ts:2 h0 @ init.ts:32 s @ init.ts:33 (anonymous) @ init.ts:33 (anonymous) @ init.ts:33 Tl @ init.ts:471 y0 @ init.ts:47 (anonymous) @ index.ts:58 setTimeout (async) (anonymous) @ index.ts:56 e @ jquery.js:3766 t @ jquery.js:3834 setTimeout (async) (anonymous) @ jquery.js:3872 c @ jquery.js:3500 fireWith @ jquery.js:3630 fire @ jquery.js:3638 c @ jquery.js:3500 fireWith @ jquery.js:3630 ready @ jquery.js:4110 B @ jquery.js:4120 tooltip.ts:90 Uncaught TypeError: Cannot read properties of null (reading 'content') at ee.connectedCallback (tooltip.ts:90:48) at Object.cleanEvents (wizard.min.js:1:14434) at Wizard.init (wizard.min.js:1:2555) at e.initialize (main.js:16:12) at w (init.ts:228:29) at init.ts:313:11 at m (init.ts:2:1357) at Generator. (init.ts:2:4174) at Generator.next (init.ts:2:2208) at h0 (init.ts:32:99) connectedCallback @ tooltip.ts:90 cleanEvents @ wizard.min.js:1 init @ wizard.min.js:1 initialize @ main.js:16 w @ init.ts:228 (anonymous) @ init.ts:313 m @ init.ts:2 (anonymous) @ init.ts:2 (anonymous) @ init.ts:2 h0 @ init.ts:32 s @ init.ts:33 (anonymous) @ init.ts:33 (anonymous) @ init.ts:33 Tl @ init.ts:471 y0 @ init.ts:47 (anonymous) @ index.ts:58 setTimeout (async) (anonymous) @ index.ts:56 e @ jquery.js:3766 t @ jquery.js:3834 setTimeout (async) (anonymous) @ jquery.js:3872 c @ jquery.js:3500 fireWith @ jquery.js:3630 fire @ jquery.js:3638 c @ jquery.js:3500 fireWith @ jquery.js:3630 ready @ jquery.js:4110 B @ jquery.js:4120 tooltip.ts:90 Uncaught TypeError: Cannot read properties of null (reading 'content') at ee.connectedCallback (tooltip.ts:90:48) at Object.cleanEvents (wizard.min.js:1:14434) at Wizard.init (wizard.min.js:1:2555) at e.initialize (main.js:16:12) at w (init.ts:228:29) at init.ts:313:11 at m (init.ts:2:1357) at Generator. (init.ts:2:4174) at Generator.next (init.ts:2:2208) at h0 (init.ts:32:99) connectedCallback @ tooltip.ts:90 cleanEvents @ wizard.min.js:1 init @ wizard.min.js:1 initialize @ main.js:16 w @ init.ts:228 (anonymous) @ init.ts:313 m @ init.ts:2 (anonymous) @ init.ts:2 (anonymous) @ init.ts:2 h0 @ init.ts:32 s @ init.ts:33 (anonymous) @ init.ts:33 (anonymous) @ init.ts:33 Tl @ init.ts:471 y0 @ init.ts:47 (anonymous) @ index.ts:58 setTimeout (async) (anonymous) @ index.ts:56 e @ jquery.js:3766 t @ jquery.js:3834 setTimeout (async) (anonymous) @ jquery.js:3872 c @ jquery.js:3500 fireWith @ jquery.js:3630 fire @ jquery.js:3638 c @ jquery.js:3500 fireWith @ jquery.js:3630 ready @ jquery.js:4110 B @ jquery.js:4120 tooltip.ts:90 Uncaught TypeError: Cannot read properties of null (reading 'content') at ee.connectedCallback (tooltip.ts:90:48) at Object.cleanEvents (wizard.min.js:1:14434) at Wizard.init (wizard.min.js:1:2555) at e.initialize (main.js:16:12) at w (init.ts:228:29) at init.ts:313:11 at m (init.ts:2:1357) at Generator. (init.ts:2:4174) at Generator.next (init.ts:2:2208) at h0 (init.ts:32:99) connectedCallback @ tooltip.ts:90 cleanEvents @ wizard.min.js:1 init @ wizard.min.js:1 initialize @ main.js:16 w @ init.ts:228 (anonymous) @ init.ts:313 m @ init.ts:2 (anonymous) @ init.ts:2 (anonymous) @ init.ts:2 h0 @ init.ts:32 s @ init.ts:33 (anonymous) @ init.ts:33 (anonymous) @ init.ts:33 Tl @ init.ts:471 y0 @ init.ts:47 (anonymous) @ index.ts:58 setTimeout (async) (anonymous) @ index.ts:56 e @ jquery.js:3766 t @ jquery.js:3834 setTimeout (async) (anonymous) @ jquery.js:3872 c @ jquery.js:3500 fireWith @ jquery.js:3630 fire @ jquery.js:3638 c @ jquery.js:3500 fireWith @ jquery.js:3630 ready @ jquery.js:4110 B @ jquery.js:4120 tooltip.ts:90 Uncaught TypeError: Cannot read properties of null (reading 'content') at ee.connectedCallback (tooltip.ts:90:48) at Object.cleanEvents (wizard.min.js:1:14434) at Wizard.init (wizard.min.js:1:2555) at e.initialize (main.js:16:12) at w (init.ts:228:29) at init.ts:313:11 at m (init.ts:2:1357) at Generator. (init.ts:2:4174) at Generator.next (init.ts:2:2208) at h0 (init.ts:32:99) connectedCallback @ tooltip.ts:90 cleanEvents @ wizard.min.js:1 init @ wizard.min.js:1 initialize @ main.js:16 w @ init.ts:228 (anonymous) @ init.ts:313 m @ init.ts:2 (anonymous) @ init.ts:2 (anonymous) @ init.ts:2 h0 @ init.ts:32 s @ init.ts:33 (anonymous) @ init.ts:33 (anonymous) @ init.ts:33 Tl @ init.ts:471 y0 @ init.ts:47 (anonymous) @ index.ts:58 setTimeout (async) (anonymous) @ index.ts:56 e @ jquery.js:3766 t @ jquery.js:3834 setTimeout (async) (anonymous) @ jquery.js:3872 c @ jquery.js:3500 fireWith @ jquery.js:3630 fire @ jquery.js:3638 c @ jquery.js:3500 fireWith @ jquery.js:3630 ready @ jquery.js:4110 B @ jquery.js:4120 wizard.min.js:1 .wizard : This item is already defined init @ wizard.min.js:1 initialize @ main.js:16 w @ init.ts:228 wi @ initedMethods.ts:79 (anonymous) @ render.ts:123 m @ render.ts:1 (anonymous) @ render.ts:1 (anonymous) @ render.ts:1 fO @ render.ts:41 s @ render.ts:42 Promise.then (async) fO @ render.ts:41 s @ render.ts:42 (anonymous) @ render.ts:42 (anonymous) @ render.ts:42 bc @ render.ts:132 Le @ render.ts:72 (anonymous) @ shinyapp.ts:1198 m @ shinyapp.ts:5 (anonymous) @ shinyapp.ts:5 (anonymous) @ shinyapp.ts:5 f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 (anonymous) @ shinyapp.ts:7 (anonymous) @ shinyapp.ts:7 (anonymous) @ shinyapp.ts:1226 (anonymous) @ shinyapp.ts:866 m @ shinyapp.ts:5 (anonymous) @ shinyapp.ts:5 (anonymous) @ shinyapp.ts:5 f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 (anonymous) @ shinyapp.ts:7 (anonymous) @ shinyapp.ts:7 t @ shinyapp.ts:878 (anonymous) @ shinyapp.ts:830 m @ shinyapp.ts:5 (anonymous) @ shinyapp.ts:5 (anonymous) @ shinyapp.ts:5 f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 (anonymous) @ shinyapp.ts:7 (anonymous) @ shinyapp.ts:7 t @ shinyapp.ts:840 (anonymous) @ shinyapp.ts:388 m @ shinyapp.ts:5 (anonymous) @ shinyapp.ts:5 (anonymous) @ shinyapp.ts:5 f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 (anonymous) @ shinyapp.ts:7 (anonymous) @ shinyapp.ts:7 (anonymous) @ shinyapp.ts:435 m @ shinyapp.ts:5 (anonymous) @ shinyapp.ts:5 (anonymous) @ shinyapp.ts:5 f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 Promise.then (async) f0 @ shinyapp.ts:6 s @ shinyapp.ts:7 (anonymous) @ shinyapp.ts:7 (anonymous) @ shinyapp.ts:7 t @ shinyapp.ts:453 i.onopen @ shinyapp.ts:380 ```
daattali commented 5 months ago

Cannot reproduce.

Using latest (github version) of shinyalert and latest version of wizardR

I used the code in app-dev.R

Here's a video to show I was able to open a shiny alert, and then I was able to lock and unlock the wizard

https://www.loom.com/share/2de6d692941548d587fe2bd100246748