fix(web): address review feedback on the monitoring column (#1616)

- ResizeHandle: clear the `resizing-col` body class on unmount so a drag
  interrupted by the handle unmounting (narrow past the breakpoint / disconnect)
  can't leave page-wide user-select:none / col-resize applied.
- Embedded monitor column now shows the full unfiltered stream instead of
  silently mirroring the full-size screen's live filter (the column has no
  filter control to explain an empty/partial list).
- MonitoringControls: give the SegmentedControl an aria-label ("Monitoring
  screen") so the tab group has an accessible name.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
cliffhall 2026-07-08 19:41:00 -04:00
commit 9b76272ad1
3 changed files with 124 additions and 11 deletions

View file

@ -126,4 +126,17 @@ describe("HistoryScreen", () => {
// The sidebar (HistoryControls, with its Search box) is not rendered.
expect(screen.queryByPlaceholderText("Search...")).toBeNull();
});
it("shows the full stream when embedded, ignoring the live filter", () => {
// A search that matches nothing would empty the full-size screen...
renderWithMantine(
<HistoryScreen
{...baseProps}
ui={{ ...EMPTY_HISTORY_UI, search: "zzz-no-match" }}
embedded
/>,
);
// ...but the embedded column shows the full stream (not the empty state).
expect(screen.queryByText("No request history")).toBeNull();
});
});

View file

@ -146,4 +146,24 @@ describe("LoggingScreen", () => {
// The sidebar (LogControls, with its Set button) is not rendered.
expect(screen.queryByRole("button", { name: "Set" })).toBeNull();
});
it("shows the full stream when embedded, ignoring the live filter", () => {
const entries = [
{
receivedAt: new Date(),
params: { level: "info" as const, data: "hello" },
},
];
// A filter that would hide the entry on the full-size screen...
renderWithMantine(
<LoggingScreen
{...baseProps}
entries={entries}
ui={{ ...EMPTY_LOGS_UI, filterText: "zzz-no-match" }}
embedded
/>,
);
// ...is ignored in the embedded, sidebar-less column.
expect(screen.getByText("hello")).toBeInTheDocument();
});
});

View file

@ -179,4 +179,17 @@ describe("NetworkScreen", () => {
// The stream toolbar (Export) is still present.
expect(screen.getByRole("button", { name: "Export" })).toBeInTheDocument();
});
it("shows the full stream when embedded, ignoring the live filter", () => {
// A filter that matches nothing would empty the full-size screen...
renderWithMantine(
<NetworkScreen
{...baseProps}
ui={{ ...EMPTY_NETWORK_UI, filterText: "zzz-no-match" }}
embedded
/>,
);
// ...but the embedded column shows the full stream (not the empty state).
expect(screen.queryByText("No network requests")).toBeNull();
});
});