From 356127f0e319ee2a3401338132e214cfcaf2fe63 Mon Sep 17 00:00:00 2001 From: Lan-zk <68137514+Lan-zk@users.noreply.github.com> Date: Sat, 15 Aug 2026 14:41:42 +0800 Subject: [PATCH] fix(kafka): restore message tab scrolling --- .../src/components/mq/KafkaMessagesPanel.vue | 14 ++++++++++++++ .../mq/__tests__/KafkaMessagesPanel.spec.ts | 16 ++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/apps/desktop/src/components/mq/KafkaMessagesPanel.vue b/apps/desktop/src/components/mq/KafkaMessagesPanel.vue index 7c1da8b36c..550f5a0157 100644 --- a/apps/desktop/src/components/mq/KafkaMessagesPanel.vue +++ b/apps/desktop/src/components/mq/KafkaMessagesPanel.vue @@ -156,9 +156,23 @@ watch(selectedTopic, (topic) => emit("topicSelected", topic)); } .kafka-messages-panel { + height: 100%; + min-height: 0; + box-sizing: border-box; + overflow: hidden; padding: 16px; } +.panel-toolbar { + flex-shrink: 0; +} + +.kafka-messages-content { + flex: 1; + min-height: 0; + overflow-y: auto; +} + .kafka-topic-section, .partition-overview { padding: 14px; diff --git a/apps/desktop/src/components/mq/__tests__/KafkaMessagesPanel.spec.ts b/apps/desktop/src/components/mq/__tests__/KafkaMessagesPanel.spec.ts index 6c871484e2..5c20afb7fb 100644 --- a/apps/desktop/src/components/mq/__tests__/KafkaMessagesPanel.spec.ts +++ b/apps/desktop/src/components/mq/__tests__/KafkaMessagesPanel.spec.ts @@ -152,4 +152,20 @@ describe("KafkaMessagesPanel", () => { expect(panel.querySelector('[data-testid="message-browser"]')).not.toBeNull(); warning.mockRestore(); }); + + it("keeps the topic toolbar outside the scrolling content area (issue #6267)", async () => { + const panel = await mountPanel(); + const panelRoot = panel.querySelector(".kafka-messages-panel"); + const toolbar = panelRoot?.querySelector(".panel-toolbar"); + const content = panelRoot?.querySelector(".kafka-messages-content"); + + expect(panelRoot).not.toBeNull(); + expect(toolbar).not.toBeNull(); + expect(content).not.toBeNull(); + // The toolbar must not live inside the scroll container so topic refresh + // stays reachable after scrolling; it must also precede it in layout order. + expect(content!.contains(toolbar!)).toBe(false); + const children = [...panelRoot!.children].map((child) => child.className); + expect(children.indexOf("panel-toolbar")).toBeLessThan(children.indexOf("kafka-messages-content")); + }); });