Improve data agent workspace UI

This commit is contained in:
武阳
2026-05-06 17:19:13 +08:00
parent e6e9968ede
commit d9a8110b7c
17 changed files with 910 additions and 201 deletions
@@ -94,6 +94,10 @@ export function ActivityPanel() {
const { open, selectedId, openItem, close } = useActivityPanel();
const messages = useAuiState((s) => s.thread.messages);
const items = useMemo(() => collectActivityItems(messages), [messages]);
const selectedMessageId = selectedId ? activityMessageId(selectedId) : null;
const visibleItems = selectedMessageId
? items.filter((item) => activityMessageId(item.id) === selectedMessageId)
: items;
const prevCountRef = useRef(0);
useEffect(() => {
@@ -111,7 +115,9 @@ export function ActivityPanel() {
<div className="min-w-0">
<h2 className="font-semibold text-base"></h2>
<p className="text-muted-foreground text-xs">
{items.length > 0 ? `${items.length} 个步骤` : "暂无链路"}
{visibleItems.length > 0
? `${visibleItems.length} 个步骤`
: "暂无链路"}
</p>
</div>
<Button
@@ -126,13 +132,13 @@ export function ActivityPanel() {
</Button>
</header>
<div className="min-h-0 flex-1 overflow-y-auto px-4 py-4">
{items.length === 0 ? (
{visibleItems.length === 0 ? (
<p className="text-muted-foreground text-sm">
</p>
) : (
<div className="flex flex-col gap-2">
{items.map((item) => (
{visibleItems.map((item) => (
<ActivityPanelItem
key={item.id}
item={item}
@@ -149,6 +155,10 @@ export function ActivityPanel() {
);
}
function activityMessageId(activityId: string) {
return activityId.split(":", 1)[0] ?? activityId;
}
function ActivityPanelItem({
item,
open,