diff --git a/web/src/assets/svg/arxiv.svg b/web/src/assets/svg/arxiv.svg index ce8cb9a23..bff014557 100644 --- a/web/src/assets/svg/arxiv.svg +++ b/web/src/assets/svg/arxiv.svg @@ -1,5 +1,5 @@ - + arxiv @@ -13,11 +13,21 @@ - - - - - + + + + + diff --git a/web/src/assets/svg/duck.svg b/web/src/assets/svg/duck.svg index 2cf46353a..c31dd491f 100644 --- a/web/src/assets/svg/duck.svg +++ b/web/src/assets/svg/duck.svg @@ -1,5 +1,5 @@ - + duckgo @@ -13,12 +13,24 @@ - - - - - - + + + + + + diff --git a/web/src/assets/svg/github.svg b/web/src/assets/svg/github.svg index 198f08848..4489eb33b 100644 --- a/web/src/assets/svg/github.svg +++ b/web/src/assets/svg/github.svg @@ -1,5 +1,5 @@ - + GitHub @@ -11,9 +11,12 @@ - + - + + diff --git a/web/src/assets/svg/google-scholar.svg b/web/src/assets/svg/google-scholar.svg index 40c50536a..a2eeff732 100644 --- a/web/src/assets/svg/google-scholar.svg +++ b/web/src/assets/svg/google-scholar.svg @@ -1,5 +1,5 @@ - + Google scholar @@ -15,8 +15,12 @@ - - + + diff --git a/web/src/assets/svg/google.svg b/web/src/assets/svg/google.svg index 2e60e15a4..cf12a71c6 100644 --- a/web/src/assets/svg/google.svg +++ b/web/src/assets/svg/google.svg @@ -1,5 +1,5 @@ - + serpapi @@ -11,7 +11,10 @@ - + + diff --git a/web/src/assets/svg/pubmed.svg b/web/src/assets/svg/pubmed.svg index 2c0bb0468..4fa205426 100644 --- a/web/src/assets/svg/pubmed.svg +++ b/web/src/assets/svg/pubmed.svg @@ -1,5 +1,5 @@ - + pubmed @@ -11,13 +11,24 @@ - + - - - - - + + + + + + diff --git a/web/src/assets/svg/tavily.svg b/web/src/assets/svg/tavily.svg index fc3e9f2d1..f4e5fb783 100644 --- a/web/src/assets/svg/tavily.svg +++ b/web/src/assets/svg/tavily.svg @@ -1,5 +1,5 @@ - + tavily @@ -11,12 +11,24 @@ - - - - - - + + + + + + diff --git a/web/src/assets/svg/wencai.svg b/web/src/assets/svg/wencai.svg index bd254d03d..1ba940f77 100644 --- a/web/src/assets/svg/wencai.svg +++ b/web/src/assets/svg/wencai.svg @@ -1,5 +1,5 @@ - + wencai @@ -16,7 +16,9 @@ - + + diff --git a/web/src/assets/svg/wikipedia.svg b/web/src/assets/svg/wikipedia.svg index e9050a25d..f7e0c1945 100644 --- a/web/src/assets/svg/wikipedia.svg +++ b/web/src/assets/svg/wikipedia.svg @@ -1,5 +1,5 @@ - + wikipedia @@ -11,9 +11,11 @@ - + - + + diff --git a/web/src/assets/svg/yahoo-finance.svg b/web/src/assets/svg/yahoo-finance.svg index db0b8ebb0..bb6df4750 100644 --- a/web/src/assets/svg/yahoo-finance.svg +++ b/web/src/assets/svg/yahoo-finance.svg @@ -1,9 +1,10 @@ - + yahoofinance - + + { hideFormDrawer(); if (imgVisible) { @@ -165,6 +168,8 @@ function AgentCanvas({ drawerVisible, hideDrawer }: IProps) { } }; + const isDarkTheme = useIsDarkTheme(); + useHideFormSheetOnNodeDeletion({ hideFormDrawer }); return ( @@ -211,13 +216,15 @@ function AgentCanvas({ drawerVisible, hideDrawer }: IProps) { onEdgeMouseEnter={onEdgeMouseEnter} onEdgeMouseLeave={onEdgeMouseLeave} className="h-full" - colorMode="dark" + colorMode={theme} defaultEdgeOptions={{ type: 'buttonEdge', markerEnd: 'logo', style: { strokeWidth: 1, - stroke: 'rgba(91, 93, 106, 1)', + stroke: isDarkTheme + ? 'rgba(91, 93, 106, 1)' + : 'rgba(151, 154, 171, 1)', }, zIndex: 1001, // https://github.com/xyflow/xyflow/discussions/3498 }} diff --git a/web/src/pages/agent/canvas/node/dropdown/next-step-dropdown.tsx b/web/src/pages/agent/canvas/node/dropdown/next-step-dropdown.tsx index 8dc36e7c6..156915a9d 100644 --- a/web/src/pages/agent/canvas/node/dropdown/next-step-dropdown.tsx +++ b/web/src/pages/agent/canvas/node/dropdown/next-step-dropdown.tsx @@ -60,7 +60,7 @@ function AccordionOperators() { defaultValue={['item-1', 'item-2', 'item-3', 'item-4', 'item-5']} > - AI + Foundation - + {visible && ( diff --git a/web/src/pages/agent/components/background.tsx b/web/src/pages/agent/components/background.tsx index 0e3f670e7..cf7b18f45 100644 --- a/web/src/pages/agent/components/background.tsx +++ b/web/src/pages/agent/components/background.tsx @@ -1,7 +1,13 @@ +import { useIsDarkTheme } from '@/components/theme-provider'; import { Background } from '@xyflow/react'; export function AgentBackground() { + const isDarkTheme = useIsDarkTheme(); + return ( - + ); } diff --git a/web/src/pages/agent/embed-dialog/index.tsx b/web/src/pages/agent/embed-dialog/index.tsx index 8b5e64bf5..3875355a7 100644 --- a/web/src/pages/agent/embed-dialog/index.tsx +++ b/web/src/pages/agent/embed-dialog/index.tsx @@ -139,7 +139,7 @@ function EmbedDialog({
Embed code - {text} + {text}
{t(isAgent ? 'flow' : 'chat', { keyPrefix: 'header' })} diff --git a/web/src/pages/agent/form-sheet/next.tsx b/web/src/pages/agent/form-sheet/next.tsx index 1b5c89722..2d7b5ca8b 100644 --- a/web/src/pages/agent/form-sheet/next.tsx +++ b/web/src/pages/agent/form-sheet/next.tsx @@ -103,11 +103,13 @@ const FormSheet = ({ )}
- - {t( - `${lowerFirst(operatorName === Operator.Tool ? clickedToolId : operatorName)}Description`, - )} - + {isMcp || ( + + {t( + `${lowerFirst(operatorName === Operator.Tool ? clickedToolId : operatorName)}Description`, + )} + + )}
diff --git a/web/src/pages/agent/form/agent-form/tool-popover/tool-command.tsx b/web/src/pages/agent/form/agent-form/tool-popover/tool-command.tsx index 801234b97..7e5d89ca6 100644 --- a/web/src/pages/agent/form/agent-form/tool-popover/tool-command.tsx +++ b/web/src/pages/agent/form/agent-form/tool-popover/tool-command.tsx @@ -37,10 +37,10 @@ const Menus = [ label: 'Communication', list: [Operator.Email], }, - { - label: 'Productivity', - list: [], - }, + // { + // label: 'Productivity', + // list: [], + // }, { label: 'Developer', list: [Operator.GitHub, Operator.ExeSQL, Operator.Code, Operator.Retrieval], diff --git a/web/src/pages/agent/index.tsx b/web/src/pages/agent/index.tsx index ca4d2d688..2ac645a58 100644 --- a/web/src/pages/agent/index.tsx +++ b/web/src/pages/agent/index.tsx @@ -1,5 +1,4 @@ import { PageHeader } from '@/components/page-header'; -import { useSwitchToDarkThemeOnMount } from '@/components/theme-provider'; import { Breadcrumb, BreadcrumbItem, @@ -98,8 +97,6 @@ export default function Agent() { const { navigateToAgentLogs } = useNavigatePage(); const time = useWatchAgentChange(chatDrawerVisible); - useSwitchToDarkThemeOnMount(); - return (
diff --git a/web/src/pages/agent/log-sheet/workFlowTimeline.tsx b/web/src/pages/agent/log-sheet/workFlowTimeline.tsx index fe773af91..008ae553e 100644 --- a/web/src/pages/agent/log-sheet/workFlowTimeline.tsx +++ b/web/src/pages/agent/log-sheet/workFlowTimeline.tsx @@ -21,7 +21,7 @@ import { import { ITraceData } from '@/interfaces/database/agent'; import { cn } from '@/lib/utils'; import { t } from 'i18next'; -import { get } from 'lodash'; +import { get, isEmpty } from 'lodash'; import { useCallback, useEffect, useMemo, useState } from 'react'; import JsonView from 'react18-json-view'; import { Operator } from '../constant'; @@ -46,7 +46,7 @@ export function JsonViewer({ src={data} displaySize collapseStringsAfterLength={100000000000} - className="w-full h-[200px] break-words overflow-auto p-2 bg-slate-800" + className="w-full h-[200px] break-words overflow-auto p-2 bg-background-card" />
); @@ -219,9 +219,9 @@ export const WorkFlowTimeline = ({ Online diff --git a/web/src/pages/agent/operator-icon.tsx b/web/src/pages/agent/operator-icon.tsx index 00fdd6e0a..59892c141 100644 --- a/web/src/pages/agent/operator-icon.tsx +++ b/web/src/pages/agent/operator-icon.tsx @@ -1,5 +1,17 @@ +import { ReactComponent as ArxivIcon } from '@/assets/svg/arxiv.svg'; +import { ReactComponent as BingIcon } from '@/assets/svg/bing.svg'; +import { ReactComponent as CrawlerIcon } from '@/assets/svg/crawler.svg'; +import { ReactComponent as DuckIcon } from '@/assets/svg/duck.svg'; +import { ReactComponent as GithubIcon } from '@/assets/svg/github.svg'; +import { ReactComponent as GoogleScholarIcon } from '@/assets/svg/google-scholar.svg'; +import { ReactComponent as GoogleIcon } from '@/assets/svg/google.svg'; +import { ReactComponent as PubMedIcon } from '@/assets/svg/pubmed.svg'; +import { ReactComponent as TavilyIcon } from '@/assets/svg/tavily.svg'; +import { ReactComponent as WenCaiIcon } from '@/assets/svg/wencai.svg'; +import { ReactComponent as WikipediaIcon } from '@/assets/svg/wikipedia.svg'; +import { ReactComponent as YahooFinanceIcon } from '@/assets/svg/yahoo-finance.svg'; + import { IconFont } from '@/components/icon-font'; -import SvgIcon from '@/components/svg-icon'; import { cn } from '@/lib/utils'; import { HousePlus } from 'lucide-react'; import { Operator } from './constant'; @@ -27,19 +39,19 @@ export const OperatorIconMap = { }; const SVGIconMap = { - [Operator.ArXiv]: 'arxiv', - [Operator.GitHub]: 'github', - [Operator.Bing]: 'bing', - [Operator.DuckDuckGo]: 'duck', - [Operator.Google]: 'google', - [Operator.GoogleScholar]: 'google-scholar', - [Operator.PubMed]: 'pubmed', - [Operator.TavilyExtract]: 'tavily', - [Operator.TavilySearch]: 'tavily', - [Operator.Wikipedia]: 'wikipedia', - [Operator.YahooFinance]: 'yahoo-finance', - [Operator.WenCai]: 'wencai', - [Operator.Crawler]: 'crawler', + [Operator.ArXiv]: ArxivIcon, + [Operator.GitHub]: GithubIcon, + [Operator.Bing]: BingIcon, + [Operator.DuckDuckGo]: DuckIcon, + [Operator.Google]: GoogleIcon, + [Operator.GoogleScholar]: GoogleScholarIcon, + [Operator.PubMed]: PubMedIcon, + [Operator.TavilyExtract]: TavilyIcon, + [Operator.TavilySearch]: TavilyIcon, + [Operator.Wikipedia]: WikipediaIcon, + [Operator.YahooFinance]: YahooFinanceIcon, + [Operator.WenCai]: WenCaiIcon, + [Operator.Crawler]: CrawlerIcon, }; const Empty = () => { @@ -48,6 +60,7 @@ const Empty = () => { const OperatorIcon = ({ name, className }: IProps) => { const Icon = OperatorIconMap[name as keyof typeof OperatorIconMap] || Empty; + const SvgIcon = SVGIconMap[name as keyof typeof SVGIconMap] || Empty; if (name === Operator.Begin) { return ( @@ -57,20 +70,10 @@ const OperatorIcon = ({ name, className }: IProps) => { ); } - if (name in SVGIconMap) { - return ( - - ); - } - return typeof Icon === 'string' ? ( ) : ( - + ); }; diff --git a/web/src/pages/next-chats/share/index.tsx b/web/src/pages/next-chats/share/index.tsx index 270cfd1bc..652906c4b 100644 --- a/web/src/pages/next-chats/share/index.tsx +++ b/web/src/pages/next-chats/share/index.tsx @@ -4,7 +4,6 @@ import MessageItem from '@/components/next-message-item'; import PdfDrawer from '@/components/pdf-drawer'; import { useClickDrawer } from '@/components/pdf-drawer/hooks'; import { RAGFlowAvatar } from '@/components/ragflow-avatar'; -import { useSwitchToDarkThemeOnMount } from '@/components/theme-provider'; import { Button } from '@/components/ui/button'; import { MessageType } from '@/constants/chat'; import { useFetchAppConf } from '@/hooks/logic-hooks'; @@ -101,8 +100,6 @@ const ChatContainer = () => { } }, [inputsData, showParameterDialog]); - useSwitchToDarkThemeOnMount(); - const handleInputsModalOk = (params: any[]) => { ok(params); };