Bug reportOct 23, 2026· 0:28· 0 views
PrimeVue: nested DynamicDialog close removes scroll lock while outer dialog stays open
0:28 total
Comments · 0
Be the first to comment.
Bug reportby SceneRecap AI
mediumDynamicDialog / Dialog body scroll lock handling. The likely cause is that closing a nested dialog unconditionally removes the body scroll-lock class or style, without checking whether other modal dialogs are still open. A reference count or stack is probably needed.
os: macOSdpr: 1url: /dynamicdialoglocale: en-USbrowser: Chromium 151.0.7922.34timezone: Europe/Berlinviewport: 1280x720library_version: PrimeVue 5.0.4 (footer visible at 23.0s)
Repro steps
- 1.Open the PrimeVue Dynamic Dialog docs page (/dynamicdialog).
- 2.Go to the Example section with the 'Select a Product' demo button.
- 3.Click 'Select a Product'. The Product List dialog opens.
- 4.In the Product List dialog, click 'Nested Dialog'. An Information dialog opens on top.
- 5.Click 'Close' in the Information dialog.
- 6.With the Product List dialog still open, scroll over the page area behind it, for example over the left sidebar.
Expected
After the nested Information dialog closes, the outer Product List modal is still open. The body scroll lock should stay active, so the background page should not scroll.
Actual
The nested dialog closes and the Product List dialog stays open. But the background page scrolls behind the open modal. By 23.0s the sidebar has moved up, the footer 'PrimeVue 5.0.4 by PrimeUI' is visible and On This Page highlights 'Accessibility'.
Evidence
visualControl: clicking 'Select a Product' opens the Product List dialog over a dimmed page. It lists 5 products and has 'Nested Dialog' and 'Cancel' buttons. This works as expected.
visualControl: clicking 'Nested Dialog' opens the Information dialog reading 'There are 5 products in total in this list.' with a Close button. This works as expected.
visualClicking Close dismisses only the Information dialog. The Product List dialog correctly stays open.
visualThe cursor is over the left sidebar behind the open Product List modal. The page is still at the Example section, with 'Example' highlighted in On This Page.
visualThe background page has scrolled while the Product List modal is still open. The sidebar is shifted up, the footer 'PrimeVue 5.0.4 by PrimeUI' appears and On This Page highlights 'Accessibility'.
Issue markdown (copy-paste ready)
## Summary On the PrimeVue Dynamic Dialog docs example, closing a nested dialog removes the page scroll lock. The outer modal dialog is still open at that point, yet the background page scrolls. ## Environment - Browser: Chromium 151.0.7922.34 - OS: macOS - Viewport: 1280x720, DPR 1 - Locale/TZ: en-US / Europe/Berlin - Page: /dynamicdialog - Version: PrimeVue 5.0.4 (footer, 23.0s) ## Steps to reproduce 1. Open /dynamicdialog and go to the Example section (0.0s to 3.0s). 2. Click **Select a Product**. The Product List dialog opens (4.5s, open by 7.0s). 3. Click **Nested Dialog**. The Information dialog opens on top (11.0s, open by 13.0s). 4. Click **Close** in the Information dialog (17.2s). 5. With Product List still open, scroll over the page behind it, for example over the left sidebar (21.0s). ## Expected The outer Product List modal is still open, so the body scroll lock should remain. The background should not scroll. ## Actual The background page scrolls behind the open modal. At 23.0s the sidebar has moved up, the footer 'PrimeVue 5.0.4 by PrimeUI' is visible and On This Page highlights 'Accessibility'. ## Evidence - 7.0s (control, works): Product List dialog opens over a dimmed page. - 13.0s (control, works): nested Information dialog opens with 'There are 5 products in total in this list.' - 19.0s (works): after Close, only the Information dialog is gone and Product List stays open. - 21.0s: cursor over the sidebar. The page is still at the Example section. - 23.0s: **bug**. The page has scrolled to the footer while the modal is open. ## Suggested area DynamicDialog / Dialog scroll lock. Closing a nested dialog seems to remove the body scroll lock without checking for other open modals. Consider reference counting the lock. *Recorded with SceneRecap.*
Your recordings could explain themselves too.
Free plan · silent recordings welcome · bug reports included.
Try SceneRecap free →