SIGN IN SIGN UP

Fix campaign page scrolling (#24796)

## Summary

- treat message campaign bodies as fit-content widgets
- let the page layout scroll wrapper own the full campaign document
height
- add regression coverage for campaign sizing in vertical-list layouts

## Root cause

The unified vertical-list layout classified message campaign bodies as
viewport-filling. That fixed the widget slot to one viewport and clipped
overflow, but the campaign surface did not own a scroll container. Long
campaign content therefore overflowed inside the clipped slot while the
page scroll wrapper saw no overflow.

Campaigns should scroll as full documents, so this change removes them
from the viewport-filling category instead of adding an inner widget
scrollbar.

## Testing

- focused Jest suites: 36 tests passed
- diff lint: clean
- formatting and git diff checks: clean

A direct full twenty-front typecheck was attempted in a fresh worktree;
it was blocked by the unrelated missing generated
twenty-front-component-renderer artifact. The changed files compile in
the focused Jest suites and pass type-aware diff lint.

<!-- This is an auto-generated description by cubic. -->
<a
href="https://cubic.dev/pr/twentyhq/twenty/pull/24796?utm_source=github"
target="_blank" rel="noopener noreferrer"
data-no-image-dialog="true"><picture><source
media="(prefers-color-scheme: dark)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"><source
media="(prefers-color-scheme: light)"
srcset="https://www.cubic.dev/buttons/review-in-cubic-light.svg"><img
alt="Review in cubic"
src="https://www.cubic.dev/buttons/review-in-cubic-dark.svg"></picture></a>
<!-- End of auto-generated description by cubic. -->
F
Félix Malfait committed
2997332c5b75a040c44482f7fcb5f33ed0e3ad71
Parent: 756aa22
Committed by GitHub <noreply@github.com> on 8/25/2026, 4:54:42 PM