diff --git a/src/renderer/src/pages/home/Inputbar/Inputbar.tsx b/src/renderer/src/pages/home/Inputbar/Inputbar.tsx index 71128bf620..af7aca9faf 100644 --- a/src/renderer/src/pages/home/Inputbar/Inputbar.tsx +++ b/src/renderer/src/pages/home/Inputbar/Inputbar.tsx @@ -799,13 +799,13 @@ const Inputbar: FC = ({ assistant: _assistant, setActiveTopic, topic }) = } }, [assistant, model, updateAssistant]) - const onMentionModel = (model: Model) => { + const onMentionModel = useCallback((model: Model) => { setMentionModels((prev) => { const modelId = getModelUniqId(model) const exists = prev.some((m) => getModelUniqId(m) === modelId) return exists ? prev.filter((m) => getModelUniqId(m) !== modelId) : [...prev, model] }) - } + }, []) const onToggleExpended = () => { if (textareaHeight) { diff --git a/src/renderer/src/pages/home/Inputbar/KnowledgeBaseButton.tsx b/src/renderer/src/pages/home/Inputbar/KnowledgeBaseButton.tsx index 67cef746a0..2f050cb8ad 100644 --- a/src/renderer/src/pages/home/Inputbar/KnowledgeBaseButton.tsx +++ b/src/renderer/src/pages/home/Inputbar/KnowledgeBaseButton.tsx @@ -3,7 +3,7 @@ import { useAppSelector } from '@renderer/store' import { KnowledgeBase } from '@renderer/types' import { Tooltip } from 'antd' import { FileSearch, Plus } from 'lucide-react' -import { FC, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from 'react' +import { FC, memo, useCallback, useEffect, useImperativeHandle, useMemo, useRef } from 'react' import { useTranslation } from 'react-i18next' import { useNavigate } from 'react-router' @@ -93,4 +93,4 @@ const KnowledgeBaseButton: FC = ({ ref, selectedBases, onSelect, disabled ) } -export default KnowledgeBaseButton +export default memo(KnowledgeBaseButton) diff --git a/src/renderer/src/pages/home/Inputbar/MentionModelsButton.tsx b/src/renderer/src/pages/home/Inputbar/MentionModelsButton.tsx index 352632b40f..4928d6f4ed 100644 --- a/src/renderer/src/pages/home/Inputbar/MentionModelsButton.tsx +++ b/src/renderer/src/pages/home/Inputbar/MentionModelsButton.tsx @@ -10,7 +10,7 @@ import { Avatar, Tooltip } from 'antd' import { useLiveQuery } from 'dexie-react-hooks' import { first, sortBy } from 'lodash' import { AtSign, Plus } from 'lucide-react' -import { FC, useCallback, useImperativeHandle, useMemo } from 'react' +import { FC, memo, useCallback, useImperativeHandle, useMemo } from 'react' import { useTranslation } from 'react-i18next' import { useNavigate } from 'react-router' import styled from 'styled-components' @@ -143,7 +143,8 @@ const MentionModelsButton: FC = ({ ref, mentionModels, onMentionModel, To ) } -export default MentionModelsButton const ProviderName = styled.span` font-weight: 500; ` + +export default memo(MentionModelsButton) diff --git a/src/renderer/src/pages/home/Inputbar/WebSearchButton.tsx b/src/renderer/src/pages/home/Inputbar/WebSearchButton.tsx index 2a77b43885..de6f6a51f4 100644 --- a/src/renderer/src/pages/home/Inputbar/WebSearchButton.tsx +++ b/src/renderer/src/pages/home/Inputbar/WebSearchButton.tsx @@ -7,7 +7,7 @@ import { Assistant, WebSearchProvider } from '@renderer/types' import { hasObjectKey } from '@renderer/utils' import { Tooltip } from 'antd' import { Globe, Settings } from 'lucide-react' -import { FC, useCallback, useImperativeHandle, useMemo } from 'react' +import { FC, memo, useCallback, useImperativeHandle, useMemo } from 'react' import { useTranslation } from 'react-i18next' import { useNavigate } from 'react-router-dom' @@ -126,4 +126,4 @@ const WebSearchButton: FC = ({ ref, assistant, ToolbarButton }) => { ) } -export default WebSearchButton +export default memo(WebSearchButton)