From dbf01652f8b56734377f3691c6e337a8b6be9914 Mon Sep 17 00:00:00 2001 From: icarus Date: Thu, 18 Sep 2025 13:59:37 +0800 Subject: [PATCH] feat(agent): add avatar support for agent items Implement getAgentAvatar function to provide avatar images based on agent type. Update AgentItem component to display agent-specific avatars instead of generic ones. --- src/renderer/src/config/agent.ts | 12 +++++++++++- .../src/pages/home/Tabs/components/AgentItem.tsx | 6 ++++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/src/renderer/src/config/agent.ts b/src/renderer/src/config/agent.ts index 1c5a0228e5..ec0b4a11da 100644 --- a/src/renderer/src/config/agent.ts +++ b/src/renderer/src/config/agent.ts @@ -1,4 +1,5 @@ -import { AgentBase } from '@renderer/types' +import ClaudeAvatar from '@renderer/assets/images/models/claude.png' +import { AgentBase, AgentEntity } from '@renderer/types' // base agent config. no default config for now. const DEFAULT_AGENT_CONFIG: Omit = { @@ -9,3 +10,12 @@ const DEFAULT_AGENT_CONFIG: Omit = { export const DEFAULT_CLAUDE_CODE_CONFIG: Omit = { ...DEFAULT_AGENT_CONFIG } as const + +export const getAgentAvatar = (type: AgentEntity['type']): string => { + switch (type) { + case 'claude-code': + return ClaudeAvatar + default: + return '' + } +} diff --git a/src/renderer/src/pages/home/Tabs/components/AgentItem.tsx b/src/renderer/src/pages/home/Tabs/components/AgentItem.tsx index c9a0d429e7..a41e0c1171 100644 --- a/src/renderer/src/pages/home/Tabs/components/AgentItem.tsx +++ b/src/renderer/src/pages/home/Tabs/components/AgentItem.tsx @@ -2,6 +2,7 @@ import { Avatar, cn, useDisclosure } from '@heroui/react' import { loggerService } from '@logger' import { DeleteIcon, EditIcon } from '@renderer/components/Icons' import { AgentModal } from '@renderer/components/Popups/AgentModal' +import { getAgentAvatar } from '@renderer/config/agent' import { AgentEntity } from '@renderer/types' import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuTrigger } from '@renderer/ui/context-menu' import { FC, memo, useCallback } from 'react' @@ -23,13 +24,14 @@ const AgentItem: FC = ({ agent, isActive, onDelete }) => { const AgentLabel = useCallback(() => { const displayName = agent.name ?? agent.id + const avatar = getAgentAvatar(agent.type) return ( <> - + {displayName} ) - }, [agent.id, agent.name]) + }, [agent.id, agent.name, agent.type]) const handleClick = () => logger.debug('not implemented')