From 7b96900726722ac05e12b87ecf0a20815413ac58 Mon Sep 17 00:00:00 2001 From: icarus Date: Sat, 20 Sep 2025 21:31:44 +0800 Subject: [PATCH] refactor(agents): extract update agent logic into separate hook Move update agent functionality from useAgent and useAgents hooks into a dedicated useUpdateAgent hook to improve code organization and maintainability --- .../components/Popups/agent/AgentModal.tsx | 8 +++-- src/renderer/src/hooks/agents/useAgent.ts | 23 ++------------ src/renderer/src/hooks/agents/useAgents.ts | 18 ++--------- .../src/hooks/agents/useUpdateAgent.ts | 31 +++++++++++++++++++ .../AgentSettings/AgentEssentialSettings.tsx | 4 +-- .../pages/settings/AgentSettings/index.tsx | 4 ++- 6 files changed, 45 insertions(+), 43 deletions(-) create mode 100644 src/renderer/src/hooks/agents/useUpdateAgent.ts diff --git a/src/renderer/src/components/Popups/agent/AgentModal.tsx b/src/renderer/src/components/Popups/agent/AgentModal.tsx index 269ed2eb10..c19640c12d 100644 --- a/src/renderer/src/components/Popups/agent/AgentModal.tsx +++ b/src/renderer/src/components/Popups/agent/AgentModal.tsx @@ -19,6 +19,7 @@ import ClaudeIcon from '@renderer/assets/images/models/claude.png' import { getModelLogo } from '@renderer/config/models' import { useAgents } from '@renderer/hooks/agents/useAgents' import { useModels } from '@renderer/hooks/agents/useModels' +import { useUpdateAgent } from '@renderer/hooks/agents/useUpdateAgent' import { AddAgentForm, AgentEntity, AgentType, BaseAgentForm, isAgentType, UpdateAgentForm } from '@renderer/types' import { ChangeEvent, FormEvent, ReactNode, useCallback, useEffect, useMemo, useRef, useState } from 'react' import { useTranslation } from 'react-i18next' @@ -78,7 +79,8 @@ export const AgentModal: React.FC = ({ agent, trigger, isOpen: _isOpen, o const { t } = useTranslation() const loadingRef = useRef(false) // const { setTimeoutTimer } = useTimer() - const { addAgent, updateAgent } = useAgents() + const { addAgent } = useAgents() + const updateAgent = useUpdateAgent() // hard-coded. We only support anthropic for now. const { models } = useModels({ providerType: 'anthropic' }) const isEditing = (agent?: AgentEntity) => agent !== undefined @@ -348,7 +350,7 @@ export const AgentModal: React.FC = ({ agent, trigger, isOpen: _isOpen, o />
- + {t('agent.session.accessible_paths.label')}
) : ( -

{t('agent.session.accessible_paths.empty')}

+

{t('agent.session.accessible_paths.empty')}

)}