Improve data agent workspace UI
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user