diff --git a/clients/web/src/components/groups/ConnectionInfoModal/ConnectionInfoModal.tsx b/clients/web/src/components/groups/ConnectionInfoModal/ConnectionInfoModal.tsx index 6e1578888..fb4f9ace3 100644 --- a/clients/web/src/components/groups/ConnectionInfoModal/ConnectionInfoModal.tsx +++ b/clients/web/src/components/groups/ConnectionInfoModal/ConnectionInfoModal.tsx @@ -1,4 +1,4 @@ -import { CloseButton, Group, Modal, Stack } from "@mantine/core"; +import { CloseButton, Group, Modal, ScrollArea } from "@mantine/core"; import type { ClientCapabilities, DiscoverResult, @@ -35,30 +35,40 @@ export function ConnectionInfoModal({ onClearOAuth, }: ConnectionInfoModalProps) { return ( - - - - {/* `Modal.Title` (not a bare `Title`) registers the modal's - accessible name — it wires the dialog's `aria-labelledby`. */} - Connection Info - - - - - + + + + + {/* `Modal.Title` (not a bare `Title`) registers the modal's + accessible name — it wires the dialog's `aria-labelledby`. */} + Connection Info + + + + + + + + ); } diff --git a/pr-screenshots/README.md b/pr-screenshots/README.md index cd46c2378..e4320389b 100644 --- a/pr-screenshots/README.md +++ b/pr-screenshots/README.md @@ -1,3 +1,25 @@ +# Connection Info modal: sticky header while body scrolls (#1754) — proof screenshots + +Same fix as #1698, applied to the **Connection Info** modal. With a real server +whose `instructions` are long (e.g. the everything server in a typical config), +the connection details overflow the viewport; before the fix the whole modal +scrolled and the header left the view. Captured from the `ConnectionInfoModal` +Storybook story (`WithOAuth`, ~620px viewport) via Playwright. + +![Connection Info scrolled to the top — header pinned, Server Implementation visible](ci-1754-header-pinned-top.png) + +Top of scroll: the **Connection Info** header (title + close) sits above the +first section. + +![Connection Info scrolled down — same header still pinned while the body shows Server Instructions / OAuth Details](ci-1754-header-pinned-scrolled.png) + +Scrolled down (now showing Server Instructions → OAuth Details): the **same +header stays pinned**. Measured in-page: the body scroll container is +`scrollHeight` 1172 × `clientHeight` 558 (scrolls internally), header +`position: sticky` flush to the dialog top. + +--- + # Server/Client Settings modal: sticky header while body scrolls (#1698) — proof screenshots Expanding enough accordion sections grew the Server Settings modal past the diff --git a/pr-screenshots/ci-1754-header-pinned-scrolled.png b/pr-screenshots/ci-1754-header-pinned-scrolled.png new file mode 100644 index 000000000..17dea3c26 Binary files /dev/null and b/pr-screenshots/ci-1754-header-pinned-scrolled.png differ diff --git a/pr-screenshots/ci-1754-header-pinned-top.png b/pr-screenshots/ci-1754-header-pinned-top.png new file mode 100644 index 000000000..15a23f857 Binary files /dev/null and b/pr-screenshots/ci-1754-header-pinned-top.png differ