From c0c3287af4e1ca00316782fe384739269182d844 Mon Sep 17 00:00:00 2001 From: balibabu Date: Wed, 8 Apr 2026 18:13:14 +0800 Subject: [PATCH] Fix: Error message: Use 'const' instead. (#13982) ### What problem does this PR solve? Fix: Linter error message: Use 'const' instead. ### Type of change - [x] Bug Fix (non-breaking change which fixes an issue) ## Summary by CodeRabbit * **Refactor** * Updated variable declarations across form components, agent utilities, memory management hooks, and data handling functions to enhance code consistency and maintainability throughout the application codebase. * **Style** * Added ESLint suppressions to document intentional constant-condition patterns in asynchronous event streaming operations. --- web/src/components/document-preview/ppt-preview.tsx | 2 +- web/src/components/dynamic-form.tsx | 2 +- web/src/components/floating-chat-widget-markdown.tsx | 2 +- web/src/hooks/logic-hooks.ts | 1 + web/src/hooks/use-send-message.ts | 1 + .../agent/canvas/node/dropdown/accordion-operators.tsx | 2 +- .../pages/agent/canvas/node/note-node/use-watch-change.ts | 4 ++-- web/src/pages/agent/form/agent-form/use-watch-change.ts | 2 +- .../agent/form/iteration-form/use-watch-form-change.ts | 2 +- .../pages/agent/form/loop-form/use-watch-form-change.ts | 4 ++-- .../form/string-transform-form/use-watch-form-change.ts | 2 +- web/src/pages/agent/form/switch-form/use-watch-change.ts | 2 +- web/src/pages/agent/form/tavily-form/use-watch-change.ts | 2 +- web/src/pages/agent/form/tool-form/use-watch-change.ts | 2 +- .../form/variable-aggregator-form/use-watch-change.ts | 2 +- web/src/pages/agent/hooks/use-watch-form-change.ts | 2 +- web/src/pages/agent/webhook-sheet/index.tsx | 2 +- web/src/pages/dataflow-result/index.tsx | 2 +- web/src/pages/dataset/dataset-setting/tag-word-cloud.tsx | 2 +- web/src/pages/memory/hooks/use-memory-setting.ts | 2 +- web/src/pages/memory/memory-message/hook.ts | 2 +- web/src/pages/next-search/markdown-content/index.tsx | 2 +- web/src/pages/user-setting/data-source/hooks.ts | 2 +- web/src/utils/file-util.ts | 8 ++++---- web/src/utils/register-server.ts | 2 +- 25 files changed, 30 insertions(+), 28 deletions(-) diff --git a/web/src/components/document-preview/ppt-preview.tsx b/web/src/components/document-preview/ppt-preview.tsx index 7786c48c3b..4895ad9fe3 100644 --- a/web/src/components/document-preview/ppt-preview.tsx +++ b/web/src/components/document-preview/ppt-preview.tsx @@ -35,7 +35,7 @@ export const PptPreviewer: React.FC = ({ width = containerRef.current.clientWidth - 50; height = containerRef.current.clientHeight - 50; } - let pptxPrviewer = init(containerRef.current, { + const pptxPrviewer = init(containerRef.current, { width: width, height: height, }); diff --git a/web/src/components/dynamic-form.tsx b/web/src/components/dynamic-form.tsx index 3dd869690b..864eefbd02 100644 --- a/web/src/components/dynamic-form.tsx +++ b/web/src/components/dynamic-form.tsx @@ -956,7 +956,7 @@ const DynamicForm = { onClick={() => { (async () => { try { - let beValid = await form.trigger(); + const beValid = await form.trigger(); console.log('form valid', beValid, form); // if (beValid) { // form.handleSubmit(async (values) => { diff --git a/web/src/components/floating-chat-widget-markdown.tsx b/web/src/components/floating-chat-widget-markdown.tsx index 8e098404c8..bf828c4680 100644 --- a/web/src/components/floating-chat-widget-markdown.tsx +++ b/web/src/components/floating-chat-widget-markdown.tsx @@ -64,7 +64,7 @@ const FloatingChatWidgetMarkdown = ({ const isDarkTheme = useIsDarkTheme(); const contentWithCursor = useMemo(() => { - let text = content === '' ? t('chat.searching') : content; + const text = content === '' ? t('chat.searching') : content; const nextText = replaceTextByOldReg(text); return pipe(replaceThinkToSection, preprocessLaTeX)(nextText); }, [content, t]); diff --git a/web/src/hooks/logic-hooks.ts b/web/src/hooks/logic-hooks.ts index 0b7677e79a..d4a731c467 100644 --- a/web/src/hooks/logic-hooks.ts +++ b/web/src/hooks/logic-hooks.ts @@ -259,6 +259,7 @@ export const useSendMessageWithSse = () => { .pipeThrough(new EventSourceParserStream()) .getReader(); + // eslint-disable-next-line no-constant-condition while (true) { try { const x = await reader?.read(); diff --git a/web/src/hooks/use-send-message.ts b/web/src/hooks/use-send-message.ts index 8ebcade202..a6f24b2e3d 100644 --- a/web/src/hooks/use-send-message.ts +++ b/web/src/hooks/use-send-message.ts @@ -130,6 +130,7 @@ export const useSendMessageBySSE = (url: string) => { .pipeThrough(new EventSourceParserStream()) .getReader(); + // eslint-disable-next-line no-constant-condition while (true) { try { const x = await reader?.read(); diff --git a/web/src/pages/agent/canvas/node/dropdown/accordion-operators.tsx b/web/src/pages/agent/canvas/node/dropdown/accordion-operators.tsx index c80f62e1e1..b860dbc9ef 100644 --- a/web/src/pages/agent/canvas/node/dropdown/accordion-operators.tsx +++ b/web/src/pages/agent/canvas/node/dropdown/accordion-operators.tsx @@ -166,7 +166,7 @@ export function PipelineAccordionOperators({ const { getOperatorTypeFromId } = useGraphStore((state) => state); const operators = useMemo(() => { - let list = [ + const list = [ ...restrictSingleOperatorOnCanvas([Operator.Parser, Operator.Tokenizer]), ]; list.push(Operator.Extractor); diff --git a/web/src/pages/agent/canvas/node/note-node/use-watch-change.ts b/web/src/pages/agent/canvas/node/note-node/use-watch-change.ts index 9531bda113..d4e22d947e 100644 --- a/web/src/pages/agent/canvas/node/note-node/use-watch-change.ts +++ b/web/src/pages/agent/canvas/node/note-node/use-watch-change.ts @@ -10,7 +10,7 @@ export function useWatchFormChange(id?: string, form?: UseFormReturn) { // Manually triggered form updates are synchronized to the canvas if (id) { values = form?.getValues() || {}; - let nextValues: any = values; + const nextValues: any = values; updateNodeForm(id, nextValues); } @@ -18,7 +18,7 @@ export function useWatchFormChange(id?: string, form?: UseFormReturn) { } export function useWatchNameFormChange(id?: string, form?: UseFormReturn) { - let values = useWatch({ control: form?.control }); + const values = useWatch({ control: form?.control }); const updateNodeName = useGraphStore((state) => state.updateNodeName); useEffect(() => { diff --git a/web/src/pages/agent/form/agent-form/use-watch-change.ts b/web/src/pages/agent/form/agent-form/use-watch-change.ts index 98b0ecf310..9e4d610643 100644 --- a/web/src/pages/agent/form/agent-form/use-watch-change.ts +++ b/web/src/pages/agent/form/agent-form/use-watch-change.ts @@ -11,7 +11,7 @@ export function useWatchFormChange(id?: string, form?: UseFormReturn) { // Manually triggered form updates are synchronized to the canvas if (id && form?.formState.isDirty) { values = form?.getValues(); - let nextValues: any = { + const nextValues: any = { ...values, prompts: [{ role: PromptRole.User, content: values.prompts }], }; diff --git a/web/src/pages/agent/form/iteration-form/use-watch-form-change.ts b/web/src/pages/agent/form/iteration-form/use-watch-form-change.ts index 4a780667ed..69a5ef5f08 100644 --- a/web/src/pages/agent/form/iteration-form/use-watch-form-change.ts +++ b/web/src/pages/agent/form/iteration-form/use-watch-form-change.ts @@ -19,7 +19,7 @@ export function useWatchFormChange(id?: string, form?: UseFormReturn) { if (id && form?.formState.isDirty) { values = form?.getValues(); console.log('🚀 ~ useEffect ~ values:', values); - let nextValues: any = { + const nextValues: any = { ...values, outputs: transferToObject(values.outputs), }; diff --git a/web/src/pages/agent/form/loop-form/use-watch-form-change.ts b/web/src/pages/agent/form/loop-form/use-watch-form-change.ts index f3b707c44f..edb427cd50 100644 --- a/web/src/pages/agent/form/loop-form/use-watch-form-change.ts +++ b/web/src/pages/agent/form/loop-form/use-watch-form-change.ts @@ -12,12 +12,12 @@ export function useWatchFormChange( id?: string, form?: UseFormReturn, ) { - let values = useWatch({ control: form?.control }); + const values = useWatch({ control: form?.control }); const { replaceNodeForm } = useGraphStore((state) => state); useEffect(() => { if (id) { - let nextValues = { + const nextValues = { ...values, outputs: values.loop_variables?.reduce((pre, cur) => { const variable = cur.variable; diff --git a/web/src/pages/agent/form/string-transform-form/use-watch-form-change.ts b/web/src/pages/agent/form/string-transform-form/use-watch-form-change.ts index c5b7841f25..641e5d8261 100644 --- a/web/src/pages/agent/form/string-transform-form/use-watch-form-change.ts +++ b/web/src/pages/agent/form/string-transform-form/use-watch-form-change.ts @@ -11,7 +11,7 @@ export function useWatchFormChange(id?: string, form?: UseFormReturn) { // Manually triggered form updates are synchronized to the canvas if (id && form?.formState.isDirty) { values = form?.getValues(); - let nextValues: any = values; + const nextValues: any = values; if ( values.delimiters !== undefined && diff --git a/web/src/pages/agent/form/switch-form/use-watch-change.ts b/web/src/pages/agent/form/switch-form/use-watch-change.ts index 0c8b8259e5..bb6d5b1b15 100644 --- a/web/src/pages/agent/form/switch-form/use-watch-change.ts +++ b/web/src/pages/agent/form/switch-form/use-watch-change.ts @@ -12,7 +12,7 @@ export function useWatchFormChange(id?: string, form?: UseFormReturn) { console.log('🚀 ~ useWatchFormChange ~ values:', form?.formState.isDirty); if (id) { values = form?.getValues() || {}; - let nextValues: any = { + const nextValues: any = { ...values, conditions: values?.conditions?.map((x: ISwitchCondition) => ({ ...x })) ?? [], // Changing the form value with useFieldArray does not change the array reference diff --git a/web/src/pages/agent/form/tavily-form/use-watch-change.ts b/web/src/pages/agent/form/tavily-form/use-watch-change.ts index cb24dce688..0c499c5563 100644 --- a/web/src/pages/agent/form/tavily-form/use-watch-change.ts +++ b/web/src/pages/agent/form/tavily-form/use-watch-change.ts @@ -11,7 +11,7 @@ export function useWatchFormChange(id?: string, form?: UseFormReturn) { // Manually triggered form updates are synchronized to the canvas if (id) { values = form?.getValues(); - let nextValues: any = { + const nextValues: any = { ...values, include_domains: convertToStringArray(values.include_domains), exclude_domains: convertToStringArray(values.exclude_domains), diff --git a/web/src/pages/agent/form/tool-form/use-watch-change.ts b/web/src/pages/agent/form/tool-form/use-watch-change.ts index 3807592c56..2f439673db 100644 --- a/web/src/pages/agent/form/tool-form/use-watch-change.ts +++ b/web/src/pages/agent/form/tool-form/use-watch-change.ts @@ -3,7 +3,7 @@ import { UseFormReturn, useWatch } from 'react-hook-form'; import useGraphStore from '../../store'; export function useWatchFormChange(form?: UseFormReturn) { - let values = useWatch({ control: form?.control }); + const values = useWatch({ control: form?.control }); const { clickedToolId, diff --git a/web/src/pages/agent/form/variable-aggregator-form/use-watch-change.ts b/web/src/pages/agent/form/variable-aggregator-form/use-watch-change.ts index 11f44105c5..61903436ac 100644 --- a/web/src/pages/agent/form/variable-aggregator-form/use-watch-change.ts +++ b/web/src/pages/agent/form/variable-aggregator-form/use-watch-change.ts @@ -7,7 +7,7 @@ export function useWatchFormChange( id?: string, form?: UseFormReturn, ) { - let values = useWatch({ control: form?.control }); + const values = useWatch({ control: form?.control }); const { replaceNodeForm } = useGraphStore((state) => state); useEffect(() => { diff --git a/web/src/pages/agent/hooks/use-watch-form-change.ts b/web/src/pages/agent/hooks/use-watch-form-change.ts index 6a0f180914..acd65f42d4 100644 --- a/web/src/pages/agent/hooks/use-watch-form-change.ts +++ b/web/src/pages/agent/hooks/use-watch-form-change.ts @@ -14,7 +14,7 @@ export function useWatchFormChange( // Manually triggered form updates are synchronized to the canvas if (id) { values = form?.getValues() || {}; - let nextValues: any = values; + const nextValues: any = values; (enableReplacement ? replaceNodeForm : updateNodeForm)(id, nextValues); } diff --git a/web/src/pages/agent/webhook-sheet/index.tsx b/web/src/pages/agent/webhook-sheet/index.tsx index db726b2669..d1f46544bb 100644 --- a/web/src/pages/agent/webhook-sheet/index.tsx +++ b/web/src/pages/agent/webhook-sheet/index.tsx @@ -49,7 +49,7 @@ const WebhookSheet = ({ hideModal }: RunSheetProps) => { return { status: 'running' }; } - let errorItem = data?.events.find( + const errorItem = data?.events.find( (x) => x.event === 'error' || x.data?.error, ); if (errorItem) { diff --git a/web/src/pages/dataflow-result/index.tsx b/web/src/pages/dataflow-result/index.tsx index a0651bcd23..dbfd03b805 100644 --- a/web/src/pages/dataflow-result/index.tsx +++ b/web/src/pages/dataflow-result/index.tsx @@ -62,7 +62,7 @@ const DataflowResult = () => { navigateToAgents, navigateToAgent, } = useNavigatePage(); - let fileUrl = useGetDocumentUrl(isAgent); + const fileUrl = useGetDocumentUrl(isAgent); const { highlights, setWidthAndHeight } = useGetChunkHighlights(selectedChunk); diff --git a/web/src/pages/dataset/dataset-setting/tag-word-cloud.tsx b/web/src/pages/dataset/dataset-setting/tag-word-cloud.tsx index 1aec04c103..322ceff7ac 100644 --- a/web/src/pages/dataset/dataset-setting/tag-word-cloud.tsx +++ b/web/src/pages/dataset/dataset-setting/tag-word-cloud.tsx @@ -5,7 +5,7 @@ import { useCallback, useEffect, useMemo, useRef } from 'react'; export function TagWordCloud() { const domRef = useRef(null); - let chartRef = useRef(); + const chartRef = useRef(); const { list } = useFetchTagList(); const { list: tagList } = useMemo(() => { diff --git a/web/src/pages/memory/hooks/use-memory-setting.ts b/web/src/pages/memory/hooks/use-memory-setting.ts index 9986729373..2821d98c50 100644 --- a/web/src/pages/memory/hooks/use-memory-setting.ts +++ b/web/src/pages/memory/hooks/use-memory-setting.ts @@ -12,7 +12,7 @@ export const useFetchMemoryBaseConfiguration = () => { const { handleInputChange, searchString, pagination, setPagination } = useHandleSearchChange(); - let queryKey: (MemoryApiAction | number)[] = [ + const queryKey: (MemoryApiAction | number)[] = [ MemoryApiAction.FetchMemoryDetail, ]; diff --git a/web/src/pages/memory/memory-message/hook.ts b/web/src/pages/memory/memory-message/hook.ts index 0273b581ac..e46bc2f873 100644 --- a/web/src/pages/memory/memory-message/hook.ts +++ b/web/src/pages/memory/memory-message/hook.ts @@ -22,7 +22,7 @@ export const useFetchMemoryMessageList = () => { const { handleInputChange, searchString, pagination, setPagination } = useHandleSearchChange(); const { filterValue, handleFilterSubmit } = useHandleFilterSubmit(); - let queryKey: (MemoryApiAction | number)[] = [ + const queryKey: (MemoryApiAction | number)[] = [ MemoryApiAction.FetchMemoryMessage, ]; const agentIds = Array.isArray(filterValue.agentId) diff --git a/web/src/pages/next-search/markdown-content/index.tsx b/web/src/pages/next-search/markdown-content/index.tsx index fd0895a106..a9eeec0375 100644 --- a/web/src/pages/next-search/markdown-content/index.tsx +++ b/web/src/pages/next-search/markdown-content/index.tsx @@ -215,7 +215,7 @@ const MarkdownContent = ({ const renderReference = useCallback( (text: string) => { - let replacedText = reactStringReplace(text, currentReg, (match) => { + const replacedText = reactStringReplace(text, currentReg, (match) => { const chunkIndex = getChunkIndex(match); return ( diff --git a/web/src/pages/user-setting/data-source/hooks.ts b/web/src/pages/user-setting/data-source/hooks.ts index 8cd7684d00..7ade484406 100644 --- a/web/src/pages/user-setting/data-source/hooks.ts +++ b/web/src/pages/user-setting/data-source/hooks.ts @@ -46,7 +46,7 @@ export const useListDataSource = () => { const updatedDataSourceTemplates = useMemo(() => { const categorizedData = categorizeDataBySource(list || []); - let sourceList: Array }> = + const sourceList: Array }> = []; Object.keys(categorizedData).forEach((key: string) => { const k = key as DataSourceKey; diff --git a/web/src/utils/file-util.ts b/web/src/utils/file-util.ts index 8828754514..e9475712dd 100644 --- a/web/src/utils/file-util.ts +++ b/web/src/utils/file-util.ts @@ -54,10 +54,10 @@ export const transformBase64ToFile = ( dataUrl: string, filename: string = 'file', ) => { - let arr = dataUrl.split(','), - bstr = atob(arr[1]), - n = bstr.length, - u8arr = new Uint8Array(n); + const arr = dataUrl.split(','), + bstr = atob(arr[1]); + let n = bstr.length; + const u8arr = new Uint8Array(n); const mime = arr[0].match(/:(.*?);/); const mimeType = mime ? mime[1] : 'image/png'; diff --git a/web/src/utils/register-server.ts b/web/src/utils/register-server.ts index 045a7050c4..353f762b48 100644 --- a/web/src/utils/register-server.ts +++ b/web/src/utils/register-server.ts @@ -17,7 +17,7 @@ const registerServer = ( request: RequestMethod, ) => { const server: Service = {} as Service; - for (let key in opt) { + for (const key in opt) { server[key] = (params?: any, urlAppendix?: string) => { let url = opt[key].url; const requestOptions = opt[key];