🐛 Added explanatory message when linking to hidden/deleted comments#26390
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughBumps Suggested reviewers
🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing touches
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
57234af to
478e72d
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Fix all issues with AI agents
In `@apps/comments-ui/src/components/content/content.tsx`:
- Around line 140-154: Replace the cross-frame scrolling that calls
scrollToElement(container) inside the useEffect with the element's native
scrollIntoView API: when showMissingCommentNotice is true and
containerRef.current exists (inside the useEffect), call
container.scrollIntoView({ behavior: 'smooth', block: 'center' }) instead of
scrollToElement(container); keep the existing iframe-resize handling via
findContainingIframe and onIframeResize but ensure the callback passed to
onIframeResize calls container.scrollIntoView({ behavior: 'smooth', block:
'center' }) as well so scrolling works correctly across iframes.
In `@ghost/i18n/locales/fr/comments.json`:
- Line 72: The French locale entry for the key "The linked comment is no longer
available." in comments.json is empty; update that value to a proper French
translation such as "Le commentaire lié n'est plus disponible." by replacing the
empty string in the "The linked comment is no longer available." entry so French
users see the localized text (locate the key in
ghost/i18n/locales/fr/comments.json and edit the value).
🧹 Nitpick comments (1)
apps/comments-ui/src/components/content/content.tsx (1)
76-76:showMissingCommentNoticeis never cleared — consider resetting on hash change.Once
showMissingCommentNoticeistrue, it persists for the component lifetime. If a user later clicks a valid comment permalink (triggeringhashchange), the stale notice will remain visible alongside the newly highlighted comment. Consider dispatching a state reset in thehashchangehandler (lines 103–117) when a valid comment is found.
478e72d to
dbd0417
Compare
There was a problem hiding this comment.
🧹 Nitpick comments (2)
apps/comments-ui/src/app.tsx (1)
198-206:fetchScrollTargetsilently swallows all errors — consider logging.The catch-all on line 203 returns
nullfor any failure, including network errors or unexpected API responses. While this is safe (the UI falls back to showing the missing-comment notice), a transient network error would be indistinguishable from a genuinely missing comment. Aconsole.warnwould aid debugging without changing behavior.Proposed change
} catch { + // eslint-disable-next-line no-console + console.warn(`[Comments] Failed to fetch scroll target comment ${targetId}`); return null; }apps/comments-ui/test/e2e/permalink.test.ts (1)
103-104: Consider extractingtallBodyHtmlto a shared constant.The same HTML string is duplicated across five tests. A module-level constant would reduce noise and make future changes (e.g., adjusting the height) a single-point edit.
Example
+const TALL_BODY_HTML = '<html><head><meta charset="UTF-8" /></head><body><div style="width: 100%; height: 1500px;"></div></body></html>'; + test.describe('Comment Permalinks', async () => {Then replace all inline
tallBodyHtmldeclarations withTALL_BODY_HTML.Also applies to: 164-165, 188-189, 215-216, 252-253
7704e14 to
74a1a1f
Compare
There was a problem hiding this comment.
🧹 Nitpick comments (1)
apps/comments-ui/src/components/content/content.tsx (1)
169-173: Consider scrolling to the notice element rather than the comments container.The
containerRef(line 194) points to thecomment-elementsdiv, which sits below the notice, sorting form, and main form in the DOM. WhenscrollToElement(container)fires, the notice banner at lines 169–173 may end up above the visible viewport, especially if the forms/sorting UI add enough height between the notice and the comment list.If the intent is for the user to see the notice immediately after scroll, attach the ref (or a separate ref) to the notice element itself, or to a wrapper encompassing both the notice and comments.
ref https://linear.app/ghost/issue/BER-3324/ Permalinks to hidden or deleted comments now scroll to the comments area and show a notice that the linked comment is no longer available. Added e2e coverage for hidden/deleted permalink targets.
74a1a1f to
0978263
Compare
|
Looks good to me! |
…ryGhost#26390) closes https://linear.app/ghost/issue/BER-3324/ - scroll the page to the comments area when a permalink targets ahidden/deleted comment - show a notice: "The linked comment is no longer available."
…#89) This PR contains the following updates: | Package | Update | Change | |---|---|---| | [ghcr.io/sredevopsorg/ghost-on-kubernetes](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes) | minor | `v6.10.1` → `v6.19.1` | --- > [!WARNING] > Some dependencies could not be looked up. Check the Dependency Dashboard for more information. --- ### Release Notes <details> <summary>sredevopsorg/ghost-on-kubernetes (ghcr.io/sredevopsorg/ghost-on-kubernetes)</summary> ### [`v6.19.1`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/releases/tag/v6.19.1) #### What's Changed - Bump version and appVersion in Chart.yaml by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​628](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/628) - chore(deps): update node.js to [`a749bc9`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/a749bc9) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​625](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/625) - chore(deps): update gcr.io/distroless/nodejs22-debian13:debug-nonroot docker digest to [`b9af496`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/b9af496) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​631](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/631) - chore(deps): update gcr.io/distroless/nodejs22-debian13:latest docker digest to [`d2ba14a`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/d2ba14a) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​632](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/632) - Change Ghost installation directory to /var/lib/ghost by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​634](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/634) - Change runtime image to debug-nonroot and an updated entrypoint by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​637](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/637) - chore(deps): update node.js to [`a749bc9`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/a749bc9) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​636](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/636) #### From upstream [@​tryghost](https://redirect.github.com/tryghost) 6.19.1 [Latest](https://redirect.github.com/TryGhost/Ghost/releases/latest) @​[Ghost-Slimer](https://redirect.github.com/Ghost-Slimer) Ghost-Slimer released this 1 hour ago · [4 commits ](https://redirect.github.com/TryGhost/Ghost/compare/v6.19.1...main)to main since this release [ v6.19.1](https://redirect.github.com/TryGhost/Ghost/tree/v6.19.1) [TryGhost/Ghost@`af0f06d`](https://redirect.github.com/TryGhost/Ghost/commit/af0f06d49809e7504f9ab85380037290019f79ba) [ Commits](https://redirect.github.com/TryGhost/Ghost/compare/v6.19.0...v6.19.1) 🔒 Fixed SQL injection in Content API slug filter ordering - Fabien O'Carroll 🐛 Added explanatory message when linking to hidden/deleted comments ([TryGhost/Ghost#26390](https://redirect.github.com/TryGhost/Ghost/pull/26390)) - Kevin Ansfield **Full Changelog**: <sredevopsorg/ghost-on-kubernetes@v6.17.0...v6.19.1> ### [`v6.17.0`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/releases/tag/v6.17.0) #### What's Changed - Update helm-release.yaml for chart-releaser versioning by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​612](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/612) - chore: update Dockerfile to remove shell usage for OCI compatibility by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​624](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/624) - chore(deps): update github/codeql-action action to v4.32.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​614](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/614) - chore(deps): update docker/login-action action to v3.7.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​615](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/615) - chore(deps): update gcr.io/distroless/nodejs22-debian13:debug-nonroot docker digest to [`cb69988`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/cb69988) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​616](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/616) - chore(deps): update gcr.io/distroless/nodejs22-debian13:latest docker digest to [`8b6e2a8`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/8b6e2a8) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​617](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/617) - chore(deps): update step-security/harden-runner action to v2.14.1 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​613](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/613) - chore(deps): update node.js to [`a749bc9`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/a749bc9) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​622](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/622) - chore(deps): update github/codeql-action action to v4.32.2 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​621](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/621) - chore(deps): update step-security/harden-runner action to v2.14.2 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​623](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/623) **Full Changelog**: <sredevopsorg/ghost-on-kubernetes@v6.14.0...v6.17.0> ### [`v6.14.0`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/releases/tag/v6.14.0) #### What's Changed - Refactor: Extract settings Ghost version into single action by [@​ktlast](https://redirect.github.com/ktlast) in [#​601](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/601) - Add checkout step to Docker manifest merge workflow by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​608](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/608) - chore(deps): update github/codeql-action action to v4.31.11 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​610](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/610) - chore(deps): update actions/checkout action to v6.0.2 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​609](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/609) #### CHanges from upstream [@​tryghost](https://redirect.github.com/tryghost) ✨ Released automatic domain warm up - Sam Lord 🎨 Changed from Stripe checkout to Stripe billing portal ([TryGhost/Ghost#25887](https://redirect.github.com/TryGhost/Ghost/pull/25887)) - Sam Lord 🐛 Fixed Analytics Overview dates to use site timezone instead of UTC ([TryGhost/Ghost#25942](https://redirect.github.com/TryGhost/Ghost/pull/25942)) - Chris Raible 🐛 Allowed complimentary members to upgrade to a paid plan ([TryGhost/Ghost#25890](https://redirect.github.com/TryGhost/Ghost/pull/25890)) - Leif Singer 🐛 Fixed member name not being trimmed in Portal ([TryGhost/Ghost#25924](https://redirect.github.com/TryGhost/Ghost/pull/25924)) - Igor Balos 🐛 Fixed complimentary members being unable to view offers ([TryGhost/Ghost#25889](https://redirect.github.com/TryGhost/Ghost/pull/25889)) - Leif Singer 🐛 Fixed paginated sitemaps returning 404 for large sites ([TryGhost/Ghost#25796](https://redirect.github.com/TryGhost/Ghost/pull/25796)) - John O'Nolan 🐛 Fixed email-only posts stuck as "sent" after limit/verification failure - Kevin Ansfield 🐛 Fixed email-only posts stuck as "sent" after limit/verification failure - Kevin Ansfield 🐛 Fixed email size check not working for Contributors ([TryGhost/Ghost#25884](https://redirect.github.com/TryGhost/Ghost/pull/25884)) - Kevin Ansfield 🐛 Fixed wrongly caching admin html - Murat Çorlu **Full Changelog**: <sredevopsorg/ghost-on-kubernetes@v6.13.1...v6.14.0> ### [`v6.13.1`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/releases/tag/v6.13.1) #### New contributors [@​ktlast](https://redirect.github.com/ktlast) #### What's Changed - chore(deps): update gcr.io/distroless/nodejs22-debian13:latest docker digest to [`64ebedc`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/64ebedc) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​594](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/594) - chore(deps): update gcr.io/distroless/nodejs22-debian13:debug-nonroot docker digest to [`7f39dab`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/7f39dab) - autoclosed by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​593](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/593) - Helm chart by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​597](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/597) - chore: update Helm chart and documentation for Ghost deployment by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​599](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/599) - chore(deps): update github/codeql-action action to v4.31.10 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​596](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/596) - chore(deps): update node.js to [`0457d8a`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/0457d8a) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​600](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/600) - chore(deps): update gcr.io/distroless/nodejs22-debian13:debug-nonroot docker digest to [`80d460e`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/80d460e) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​602](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/602) - chore(deps): update gcr.io/distroless/nodejs22-debian13:latest docker digest to [`8d51366`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/8d51366) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​603](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/603) - chore: update Helm chart metadata and documentation for Ghost deployment by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​604](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/604) - chore: update Helm release workflow and chart metadata for Ghost depl… by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​605](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/605) - Update helm-release.yaml to skip GitHub release by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​606](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/606) **Full Changelog**: <sredevopsorg/ghost-on-kubernetes@v6.12.0...v6.13.1> ### [`v6.12.0`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/releases/tag/v6.12.0) [Compare Source](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/compare/v6.11.0...v6.12.0) #### What's Changed - Remove unnecessary Docker image tags by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​591](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/591) **Full Changelog**: <sredevopsorg/ghost-on-kubernetes@v6.11.0...v6.12.0> ### [`v6.11.0`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/releases/tag/v6.11.0) [Compare Source](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/compare/v6.10.3...v6.11.0) #### What's Changed - chore(deps): update step-security/harden-runner action to v2.14.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​580](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/580) - chore(deps): update github/codeql-action action to v4.31.9 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​584](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/584) - chore(deps): update docker/setup-buildx-action action to v3.12.0 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​585](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/585) - chore(deps): update node.js to [`5efa41b`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/5efa41b) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​588](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/588) - Delete .github/dependabot.yml by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​589](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/589) **Full Changelog**: <sredevopsorg/ghost-on-kubernetes@v6.10.3...v6.11.0> ### [`v6.10.3`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/releases/tag/v6.10.3) [Compare Source](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/compare/v6.10.1...v6.10.3) #### What's Changed - Change permissions and update package keywords by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​574](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/574) - Update Dockerfile-dev for Node version and base image changes by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​575](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/575) - Update Ghost on Kubernetes to version 6.0 by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​576](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/576) - chore(deps): update node.js to [`9c8ee5b`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/9c8ee5b) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​577](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/577) - chore(deps): update node.js to [`5283864`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/5283864) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​578](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/578) - chore(deps): update node.js to [`abd317c`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/abd317c) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​579](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/579) - chore(deps): update github/codeql-action action to v4.31.8 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​581](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/581) - chore(deps): update github artifact actions (major) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​582](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/582) **Full Changelog**: <sredevopsorg/ghost-on-kubernetes@v6.10.1...v6.10.3> #### What's Changed - Change permissions and update package keywords by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​574](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/574) - Update Dockerfile-dev for Node version and base image changes by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​575](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/575) - Update Ghost on Kubernetes to version 6.0 by [@​ngeorger](https://redirect.github.com/ngeorger) in [#​576](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/576) - chore(deps): update node.js to [`9c8ee5b`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/9c8ee5b) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​577](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/577) - chore(deps): update node.js to [`5283864`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/5283864) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​578](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/578) - chore(deps): update node.js to [`abd317c`](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/commit/abd317c) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​579](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/579) - chore(deps): update github/codeql-action action to v4.31.8 by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​581](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/581) - chore(deps): update github artifact actions (major) by [@​renovate](https://redirect.github.com/renovate)\[bot] in [#​582](https://redirect.github.com/sredevopsorg/ghost-on-kubernetes/pull/582) **Full Changelog**: <sredevopsorg/ghost-on-kubernetes@v6.10.1...v6.10.3> </details> --- ### Configuration 📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined). 🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied. ♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR was generated by [Mend Renovate](https://mend.io/renovate/). View the [repository job log](https://developer.mend.io/github/mwgustin/homeops). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0Mi40Mi4yIiwidXBkYXRlZEluVmVyIjoiNDMuMTUuMyIsInRhcmdldEJyYW5jaCI6Im1haW4iLCJsYWJlbHMiOltdfQ==--> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ref https://linear.app/ghost/issue/BER-3324/
Before: No scroll or error message
After: Scroll to comments area, shows message: