diff --git a/.claude/design/路由性能诊断报告.md b/.claude/design/路由性能诊断报告.md index 335b9de39b..ee048ac7a3 100644 --- a/.claude/design/路由性能诊断报告.md +++ b/.claude/design/路由性能诊断报告.md @@ -305,7 +305,7 @@ Webpack Dev Server: ```typescript // projects/app/src/pageComponents/app/detail/context.tsx:126-144 -const { loading: loadingApp, runAsync: reloadApp } = useRequest2( +const { loading: loadingApp, runAsync: reloadApp } = useRequest( () => { if (appId) { return getAppDetailById(appId); @@ -337,7 +337,7 @@ const { loading: loadingApp, runAsync: reloadApp } = useRequest2( ↓ Context Provider 初始化 ↓ -useRequest2 再次获取数据 ← 重复请求! +useRequest 再次获取数据 ← 重复请求! ↓ 页面显示 ``` @@ -351,7 +351,7 @@ useRequest2 再次获取数据 ← 重复请求! ```typescript // projects/app/src/web/context/useInitApp.ts:132-136 -useRequest2(initFetch, { +useRequest(initFetch, { refreshDeps: [userInfo?.username], manual: false, pollingInterval: 300000 // 5 分钟轮询 @@ -488,7 +488,7 @@ function AppDetail() { const router = useRouter(); const { appId } = router.query; - const { data: appDetail, isLoading } = useRequest2( + const { data: appDetail, isLoading } = useRequest( () => getAppDetailById(appId as string), { manual: false, diff --git a/packages/web/components/common/MyModal/EditFolderModal.tsx b/packages/web/components/common/MyModal/EditFolderModal.tsx index 58f404c97e..6f37e94fd9 100644 --- a/packages/web/components/common/MyModal/EditFolderModal.tsx +++ b/packages/web/components/common/MyModal/EditFolderModal.tsx @@ -2,7 +2,7 @@ import React, { useMemo } from 'react'; import { ModalFooter, ModalBody, Input, Button, Box, Textarea } from '@chakra-ui/react'; import MyModal from './index'; import { useTranslation } from 'next-i18next'; -import { useRequest2 } from '../../../hooks/useRequest'; +import { useRequest } from '../../../hooks/useRequest'; import FormLabel from '../MyBox/FormLabel'; import { useForm } from 'react-hook-form'; @@ -49,7 +49,7 @@ const EditFolderModal = ({ [isEdit, t] ); - const { run: onSave, loading } = useRequest2( + const { run: onSave, loading } = useRequest( ({ name = '', intro }: EditFolderFormType) => { if (!name) return; diff --git a/packages/web/components/common/MyPopover/PopoverConfirm.tsx b/packages/web/components/common/MyPopover/PopoverConfirm.tsx index cbcbf46269..8309574bff 100644 --- a/packages/web/components/common/MyPopover/PopoverConfirm.tsx +++ b/packages/web/components/common/MyPopover/PopoverConfirm.tsx @@ -1,7 +1,7 @@ import React from 'react'; import { useTranslation } from 'next-i18next'; import MyIcon from '../Icon'; -import { useRequest2 } from '../../../hooks/useRequest'; +import { useRequest } from '../../../hooks/useRequest'; import { Popover, PopoverTrigger, @@ -56,7 +56,7 @@ const PopoverConfirm = ({ const firstFieldRef = React.useRef(null); const { onOpen, onClose, isOpen } = useDisclosure(); - const { runAsync: onclickConfirm, loading } = useRequest2(async () => onConfirm(), { + const { runAsync: onclickConfirm, loading } = useRequest(async () => onConfirm(), { onSuccess: onClose }); diff --git a/packages/web/components/common/MySelect/index.tsx b/packages/web/components/common/MySelect/index.tsx index c4c37eaf40..b23cd43c8d 100644 --- a/packages/web/components/common/MySelect/index.tsx +++ b/packages/web/components/common/MySelect/index.tsx @@ -20,7 +20,7 @@ import { } from '@chakra-ui/react'; import type { ButtonProps, MenuItemProps } from '@chakra-ui/react'; import MyIcon from '../Icon'; -import { useRequest2 } from '../../../hooks/useRequest'; +import { useRequest } from '../../../hooks/useRequest'; import MyDivider from '../MyDivider'; import type { useScrollPagination } from '../../../hooks/useScrollPagination'; import Avatar from '../Avatar'; @@ -143,7 +143,7 @@ const MySelect = ( } }, [isSearch, isOpen]); - const { runAsync: onClickChange, loading } = useRequest2((val: T) => onChange?.(val)); + const { runAsync: onClickChange, loading } = useRequest((val: T) => onChange?.(val)); const ListRender = useMemo(() => { return ( diff --git a/packages/web/hooks/useLinkedScroll.tsx b/packages/web/hooks/useLinkedScroll.tsx index 9518bfb5e0..3bd05af728 100644 --- a/packages/web/hooks/useLinkedScroll.tsx +++ b/packages/web/hooks/useLinkedScroll.tsx @@ -4,7 +4,7 @@ import { Box, type BoxProps } from '@chakra-ui/react'; import { useTranslation } from 'next-i18next'; import { useScroll, useMemoizedFn, useDebounceEffect } from 'ahooks'; import MyBox from '../components/common/MyBox'; -import { useRequest2 } from './useRequest'; +import { useRequest } from './useRequest'; const threshold = 200; @@ -70,10 +70,10 @@ export function useLinkedScroll< [dataList, defaultScroll] ); - const { runAsync: callApi, loading: isLoading } = useRequest2(api); + const { runAsync: callApi, loading: isLoading } = useRequest(api); let scrollSign = useRef(false); - const { runAsync: loadInitData } = useRequest2( + const { runAsync: loadInitData } = useRequest( async ({ scrollWhenFinish, refresh } = { scrollWhenFinish: true, refresh: false }) => { if (isLoading) return; @@ -122,7 +122,7 @@ export function useLinkedScroll< } }, [dataList]); - const { runAsync: loadPrevData, loading: prevLoading } = useRequest2( + const { runAsync: loadPrevData, loading: prevLoading } = useRequest( async (scrollRef = containerRef) => { if (!anchorRef.current.top || !hasMorePrev || isLoading) return; @@ -161,7 +161,7 @@ export function useLinkedScroll< } ); - const { runAsync: loadNextData, loading: nextLoading } = useRequest2( + const { runAsync: loadNextData, loading: nextLoading } = useRequest( async (scrollRef = containerRef) => { if (!anchorRef.current.bottom || !hasMoreNext || isLoading) return; diff --git a/packages/web/hooks/useRequest.tsx b/packages/web/hooks/useRequest.tsx index ff7d6efbc8..0aae797bb7 100644 --- a/packages/web/hooks/useRequest.tsx +++ b/packages/web/hooks/useRequest.tsx @@ -10,41 +10,11 @@ interface Props extends UseMutationOptions { errorToast?: string | null; } -export const useRequest = ({ successToast, errorToast, onSuccess, onError, ...props }: Props) => { - const { toast } = useToast(); - const { t } = useTranslation(); - const mutation = useMutation({ - ...props, - onSuccess(res, variables: void, context: unknown) { - onSuccess?.(res, variables, context); - successToast && - toast({ - title: successToast, - status: 'success' - }); - }, - onError(err: any, variables: void, context: unknown) { - onError?.(err, variables, context); - - if (errorToast !== undefined) { - const errText = t(getErrText(err, errorToast || '') as any); - if (errText) { - toast({ - title: errText, - status: 'error' - }); - } - } - } - }); - - return mutation; -}; - type UseRequestFunProps = Parameters< typeof ahooksUseRequest >; -export const useRequest2 = ( + +export const useRequest = ( server: UseRequestFunProps[0], options: UseRequestFunProps[1] & { errorToast?: string; diff --git a/packages/web/hooks/useScrollPagination.tsx b/packages/web/hooks/useScrollPagination.tsx index cc82eb14da..aab5a6c067 100644 --- a/packages/web/hooks/useScrollPagination.tsx +++ b/packages/web/hooks/useScrollPagination.tsx @@ -14,7 +14,6 @@ import { } from 'ahooks'; import MyBox from '../components/common/MyBox'; import { useTranslation } from 'next-i18next'; -import { useRequest2 } from './useRequest'; import type { PaginationType, PaginationResponseType } from '../../global/openapi/api'; type ItemHeight = (index: number, data: T) => number; @@ -202,7 +201,7 @@ export function useScrollPagination< EmptyTip?: React.JSX.Element; showErrorToast?: boolean; disabled?: boolean; - } & Parameters[1] + } & Parameters[1] ) { const { t } = useTranslation(); const { toast } = useToast(); @@ -356,7 +355,7 @@ export function useScrollPagination< ); // Reload data - useRequest2( + useRequest( async () => { if (disabled) return; loadData({ init: true }); diff --git a/projects/app/src/components/Markdown/A.tsx b/projects/app/src/components/Markdown/A.tsx index 41c4fc9810..6839a1113a 100644 --- a/projects/app/src/components/Markdown/A.tsx +++ b/projects/app/src/components/Markdown/A.tsx @@ -13,7 +13,7 @@ import { } from '@chakra-ui/react'; import MyIcon from '@fastgpt/web/components/common/Icon'; import MyTooltip from '@fastgpt/web/components/common/MyTooltip'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; import React, { useMemo } from 'react'; import { getQuoteData } from '@/web/core/dataset/api'; @@ -74,7 +74,7 @@ const CiteLink = React.memo(function CiteLink({ data: datasetCiteData, loading, runAsync: getQuoteDataById - } = useRequest2((id: string) => getQuoteData({ id, ...chatAuthData }), { + } = useRequest((id: string) => getQuoteData({ id, ...chatAuthData }), { manual: true }); const sourceData = useMemo( diff --git a/projects/app/src/components/Select/AIModelSelector.tsx b/projects/app/src/components/Select/AIModelSelector.tsx index 104f8cb3be..f1ef7c07b6 100644 --- a/projects/app/src/components/Select/AIModelSelector.tsx +++ b/projects/app/src/components/Select/AIModelSelector.tsx @@ -6,7 +6,7 @@ import Avatar from '@fastgpt/web/components/common/Avatar'; import MySelect, { type SelectProps } from '@fastgpt/web/components/common/MySelect'; import MultipleRowSelect from '@fastgpt/web/components/common/MySelect/MultipleRowSelect'; import MyTooltip from '@fastgpt/web/components/common/MyTooltip'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; import React, { useCallback, useMemo, useState } from 'react'; @@ -35,7 +35,7 @@ const OneRowSelector = ({ getMyModelList } = useSystemStore(); - const { data: myModels } = useRequest2( + const { data: myModels } = useRequest( async () => { const set = await getMyModelList(); if (cacheModel) { @@ -154,7 +154,7 @@ const MultipleRowSelector = ({ getMyModelList } = useSystemStore(); - const { data: myModels } = useRequest2(getMyModelList, { + const { data: myModels } = useRequest(getMyModelList, { manual: false }); diff --git a/projects/app/src/components/common/Modal/EditResourceModal.tsx b/projects/app/src/components/common/Modal/EditResourceModal.tsx index f805b28d91..82e7da4de2 100644 --- a/projects/app/src/components/common/Modal/EditResourceModal.tsx +++ b/projects/app/src/components/common/Modal/EditResourceModal.tsx @@ -2,7 +2,7 @@ import React, { useCallback } from 'react'; import { ModalFooter, ModalBody, Input, Button, Box, Textarea, HStack } from '@chakra-ui/react'; import MyModal from '@fastgpt/web/components/common/MyModal/index'; import { useTranslation } from 'next-i18next'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; import { useForm } from 'react-hook-form'; import MyTooltip from '@fastgpt/web/components/common/MyTooltip'; @@ -33,7 +33,7 @@ const EditResourceModal = ({ }); const avatar = watch('avatar'); - const { runAsync: onSave, loading } = useRequest2( + const { runAsync: onSave, loading } = useRequest( (data: EditResourceInfoFormType) => onEdit(data), { onSuccess: (res) => { diff --git a/projects/app/src/components/common/PromptEditor/OptimizerPopover/index.tsx b/projects/app/src/components/common/PromptEditor/OptimizerPopover/index.tsx index c4caca7b92..c9f623f9bc 100644 --- a/projects/app/src/components/common/PromptEditor/OptimizerPopover/index.tsx +++ b/projects/app/src/components/common/PromptEditor/OptimizerPopover/index.tsx @@ -7,7 +7,7 @@ import MyPopover from '@fastgpt/web/components/common/MyPopover'; import MyIcon from '@fastgpt/web/components/common/Icon'; import MyModal from '@fastgpt/web/components/common/MyModal'; import { useTranslation } from 'next-i18next'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useLocalStorageState } from 'ahooks'; import AIModelSelector from '../../../Select/AIModelSelector'; import { useSystemStore } from '@/web/common/system/useSystemStore'; @@ -78,7 +78,7 @@ const OptimizerPopover = ({ return !optimizerInput.trim(); }, [optimizerInput]); - const { runAsync: handleSendOptimization, loading } = useRequest2(async (isAuto?: boolean) => { + const { runAsync: handleSendOptimization, loading } = useRequest(async (isAuto?: boolean) => { if (isEmptyOptimizerInput && !isAuto) return; setOptimizedResult(''); diff --git a/projects/app/src/components/common/folder/MoveModal.tsx b/projects/app/src/components/common/folder/MoveModal.tsx index 4aa2be1716..705e5b30a5 100644 --- a/projects/app/src/components/common/folder/MoveModal.tsx +++ b/projects/app/src/components/common/folder/MoveModal.tsx @@ -10,7 +10,7 @@ import { import { useMemoizedFn, useMount } from 'ahooks'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { FolderIcon } from '@fastgpt/global/common/file/image/constants'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import LightTip from '@fastgpt/web/components/common/LightTip'; type FolderItemType = { @@ -37,7 +37,7 @@ const MoveModal = ({ moveResourceId, title, server, onConfirm, onClose, moveHint const [requestingIdList, setRequestingIdList] = useState([]); const [folderList, setFolderList] = useState([]); - const { runAsync: requestServer } = useRequest2((e: GetResourceFolderListProps) => { + const { runAsync: requestServer } = useRequest((e: GetResourceFolderListProps) => { if (requestingIdList.includes(e.parentId)) return Promise.reject(null); setRequestingIdList((state) => [...state, e.parentId]); @@ -147,7 +147,7 @@ const MoveModal = ({ moveResourceId, title, server, onConfirm, onClose, moveHint } ); - const { runAsync: onConfirmSelect, loading: confirming } = useRequest2( + const { runAsync: onConfirmSelect, loading: confirming } = useRequest( () => { if (selectedId) { return onConfirm(selectedId === rootId ? null : selectedId); diff --git a/projects/app/src/components/common/folder/SelectOneResource.tsx b/projects/app/src/components/common/folder/SelectOneResource.tsx index 5d8043c328..5ebbcb98b7 100644 --- a/projects/app/src/components/common/folder/SelectOneResource.tsx +++ b/projects/app/src/components/common/folder/SelectOneResource.tsx @@ -8,7 +8,7 @@ import { import MyIcon from '@fastgpt/web/components/common/Icon'; import Loading from '@fastgpt/web/components/common/MyLoading'; import Avatar from '@fastgpt/web/components/common/Avatar'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useMemoizedFn } from 'ahooks'; import { FolderImgUrl } from '@fastgpt/global/common/file/image/constants'; import { useTranslation } from 'next-i18next'; @@ -47,7 +47,7 @@ const SelectOneResource = ({ return [root]; }, [dataList, t]); - const { runAsync: requestServer } = useRequest2((e: GetResourceFolderListProps) => { + const { runAsync: requestServer } = useRequest((e: GetResourceFolderListProps) => { if (requestingIdList.includes(e.parentId)) return Promise.reject(null); setRequestingIdList((state) => [...state, e.parentId]); @@ -56,7 +56,7 @@ const SelectOneResource = ({ ); }, {}); - const { loading } = useRequest2(() => requestServer({ parentId: null }), { + const { loading } = useRequest(() => requestServer({ parentId: null }), { manual: false, onSuccess: (data) => { setDataList( diff --git a/projects/app/src/components/core/app/InputGuideConfig.tsx b/projects/app/src/components/core/app/InputGuideConfig.tsx index 014b32eb11..271d35a270 100644 --- a/projects/app/src/components/core/app/InputGuideConfig.tsx +++ b/projects/app/src/components/core/app/InputGuideConfig.tsx @@ -32,7 +32,7 @@ import EmptyTip from '@fastgpt/web/components/common/EmptyTip'; import { useToast } from '@fastgpt/web/hooks/useToast'; import { useSelectFile } from '@/web/common/file/hooks/useSelectFile'; import { readCsvRawText } from '@fastgpt/web/common/file/utils'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import HighlightText from '@fastgpt/web/components/common/String/HighlightText'; import { defaultChatInputGuideConfig } from '@fastgpt/global/core/app/constants'; import ChatFunctionTip from './Tip'; @@ -214,7 +214,7 @@ const LexiconConfigModal = ({ appId, onClose }: { appId: string; onClose: () => } }); - const { run: createNewData, loading: isCreating } = useRequest2( + const { run: createNewData, loading: isCreating } = useRequest( async (textList: string[]) => { if (textList.filter(Boolean).length === 0) { return Promise.resolve(); diff --git a/projects/app/src/components/core/chat/ChatContainer/ChatBox/Input/ChatInput.tsx b/projects/app/src/components/core/chat/ChatContainer/ChatBox/Input/ChatInput.tsx index 3d56aceda6..b382a318c5 100644 --- a/projects/app/src/components/core/chat/ChatContainer/ChatBox/Input/ChatInput.tsx +++ b/projects/app/src/components/core/chat/ChatContainer/ChatBox/Input/ChatInput.tsx @@ -4,7 +4,7 @@ import React, { useRef, useCallback, useMemo, useState } from 'react'; import { useTranslation } from 'next-i18next'; import MyTooltip from '@fastgpt/web/components/common/MyTooltip'; import MyIcon from '@fastgpt/web/components/common/Icon'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { type ChatBoxInputFormType, type ChatBoxInputType, type SendPromptFnType } from '../type'; import { textareaMinH } from '../constants'; import { useFieldArray, type UseFormReturn } from 'react-hook-form'; @@ -106,7 +106,7 @@ const ChatInput = ({ showSelectCustomFileExtension; // Upload files - useRequest2(uploadFiles, { + useRequest(uploadFiles, { manual: false, errorToast: t('common:upload_file_error'), refreshDeps: [fileList, outLinkAuthData, chatId] @@ -126,7 +126,7 @@ const ChatInput = ({ }, [TextareaDom, canSendMessage, fileList, onSendMessage, replaceFiles] ); - const { runAsync: handleStop, loading: isStopping } = useRequest2(async () => { + const { runAsync: handleStop, loading: isStopping } = useRequest(async () => { try { if (isChatting) { await postStopV2Chat({ diff --git a/projects/app/src/components/core/chat/ChatContainer/ChatBox/Input/InputGuideBox.tsx b/projects/app/src/components/core/chat/ChatContainer/ChatBox/Input/InputGuideBox.tsx index 226f9ec69a..8f85c82b00 100644 --- a/projects/app/src/components/core/chat/ChatContainer/ChatBox/Input/InputGuideBox.tsx +++ b/projects/app/src/components/core/chat/ChatContainer/ChatBox/Input/InputGuideBox.tsx @@ -1,7 +1,7 @@ import { Box, Flex } from '@chakra-ui/react'; import React from 'react'; import MyIcon from '@fastgpt/web/components/common/Icon'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { queryChatInputGuideList } from '@/web/core/chat/inputGuide/api'; import MyTooltip from '@fastgpt/web/components/common/MyTooltip'; import { useTranslation } from 'next-i18next'; @@ -25,7 +25,7 @@ export default function InputGuideBox({ const chatInputGuide = useContextSelector(ChatBoxContext, (v) => v.chatInputGuide); const outLinkAuthData = useContextSelector(WorkflowRuntimeContext, (v) => v.outLinkAuthData); - const { data = [] } = useRequest2( + const { data = [] } = useRequest( async () => { if (!text) return []; // More than 20 characters, it's basically meaningless diff --git a/projects/app/src/components/core/chat/ChatContainer/ChatBox/components/ChatController.tsx b/projects/app/src/components/core/chat/ChatContainer/ChatBox/components/ChatController.tsx index c243089dbc..8739822edc 100644 --- a/projects/app/src/components/core/chat/ChatContainer/ChatBox/components/ChatController.tsx +++ b/projects/app/src/components/core/chat/ChatContainer/ChatBox/components/ChatController.tsx @@ -11,7 +11,7 @@ import { ChatBoxContext } from '../Provider'; import { useContextSelector } from 'use-context-selector'; import MyImage from '@fastgpt/web/components/common/Image/MyImage'; import { ChatRecordContext } from '@/web/core/chat/context/chatRecordContext'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { eventBus, EventNameEnum } from '@/web/common/utils/eventbus'; export type ChatControllerProps = { @@ -75,7 +75,7 @@ const ChatController = ({ const { runAsync: requestOnToggleFeedbackReadStatus, loading: isLoadingOnToggleFeedbackReadStatus - } = useRequest2(async () => onToggleFeedbackReadStatus?.(), { + } = useRequest(async () => onToggleFeedbackReadStatus?.(), { manual: true, onSuccess: () => { eventBus.emit(EventNameEnum.refreshFeedback); diff --git a/projects/app/src/components/core/chat/ChatContainer/ChatBox/components/ContextModal.tsx b/projects/app/src/components/core/chat/ChatContainer/ChatBox/components/ContextModal.tsx index 8fb9081e9f..436e36d425 100644 --- a/projects/app/src/components/core/chat/ChatContainer/ChatBox/components/ContextModal.tsx +++ b/projects/app/src/components/core/chat/ChatContainer/ChatBox/components/ContextModal.tsx @@ -5,7 +5,7 @@ import { useContextSelector } from 'use-context-selector'; import { ChatBoxContext } from '../Provider'; import { type ChatHistoryItemResType } from '@fastgpt/global/core/chat/type'; import { FlowNodeTypeEnum } from '@fastgpt/global/core/workflow/node/constant'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; import { getFlatAppResponses } from '@/global/core/chat/utils'; const isLLMNode = (item: ChatHistoryItemResType) => @@ -14,7 +14,7 @@ const isLLMNode = (item: ChatHistoryItemResType) => const ContextModal = ({ onClose, dataId }: { onClose: () => void; dataId: string }) => { const { getHistoryResponseData } = useContextSelector(ChatBoxContext, (v) => v); const { t } = useTranslation(); - const { loading: isLoading, data: contextModalData } = useRequest2( + const { loading: isLoading, data: contextModalData } = useRequest( () => getHistoryResponseData({ dataId }).then((res) => { const flatResData = getFlatAppResponses(res || []); diff --git a/projects/app/src/components/core/chat/ChatContainer/ChatBox/components/FeedbackModal.tsx b/projects/app/src/components/core/chat/ChatContainer/ChatBox/components/FeedbackModal.tsx index e31569493a..508dd88ec2 100644 --- a/projects/app/src/components/core/chat/ChatContainer/ChatBox/components/FeedbackModal.tsx +++ b/projects/app/src/components/core/chat/ChatContainer/ChatBox/components/FeedbackModal.tsx @@ -24,8 +24,8 @@ const FeedbackModal = ({ const { t } = useTranslation(); const outLinkAuthData = useContextSelector(WorkflowRuntimeContext, (v) => v.outLinkAuthData); - const { mutate, isLoading } = useRequest({ - mutationFn: async () => { + const { runAsync, loading: isLoading } = useRequest( + async () => { const val = ref.current?.value || t('common:core.chat.feedback.No Content'); return updateChatUserFeedback({ appId, @@ -35,12 +35,14 @@ const FeedbackModal = ({ ...outLinkAuthData }); }, - onSuccess() { - onSuccess(ref.current?.value || t('common:core.chat.feedback.No Content')); - }, - successToast: t('common:core.chat.Feedback Success'), - errorToast: t('common:core.chat.Feedback Failed') - }); + { + onSuccess() { + onSuccess(ref.current?.value || t('common:core.chat.feedback.No Content')); + }, + successToast: t('common:core.chat.Feedback Success'), + errorToast: t('common:core.chat.Feedback Failed') + } + ); return ( {t('common:Close')} - diff --git a/projects/app/src/components/core/chat/ChatContainer/ChatBox/components/QuoteList.tsx b/projects/app/src/components/core/chat/ChatContainer/ChatBox/components/QuoteList.tsx index f76b2cc676..92ce94f0f0 100644 --- a/projects/app/src/components/core/chat/ChatContainer/ChatBox/components/QuoteList.tsx +++ b/projects/app/src/components/core/chat/ChatContainer/ChatBox/components/QuoteList.tsx @@ -6,7 +6,7 @@ import QuoteItem, { formatScore } from '@/components/core/dataset/QuoteItem'; import { useContextSelector } from 'use-context-selector'; import { WorkflowRuntimeContext } from '../../context/workflowRuntimeContext'; import { ChatItemContext } from '@/web/core/chat/context/chatItemContext'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useChatStore } from '@/web/core/chat/context/useChatStore'; import { getQuoteDataList } from '@/web/core/chat/api'; @@ -32,7 +32,7 @@ const QuoteList = React.memo(function QuoteList({ (v) => v.showRouteToDatasetDetail ); - const { data: quoteList } = useRequest2( + const { data: quoteList } = useRequest( async () => !!chatItemDataId ? await getQuoteDataList({ diff --git a/projects/app/src/components/core/chat/ChatContainer/PluginRunBox/components/RenderInput.tsx b/projects/app/src/components/core/chat/ChatContainer/PluginRunBox/components/RenderInput.tsx index 249d57a17e..ec7016b3b7 100644 --- a/projects/app/src/components/core/chat/ChatContainer/PluginRunBox/components/RenderInput.tsx +++ b/projects/app/src/components/core/chat/ChatContainer/PluginRunBox/components/RenderInput.tsx @@ -7,7 +7,7 @@ import { PluginRunContext } from '../context'; import Markdown from '@/components/Markdown'; import MyIcon from '@fastgpt/web/components/common/Icon'; import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useFileUpload } from '../../ChatBox/hooks/useFileUpload'; import FilePreview from '../../components/FilePreview'; import { type UserChatItemValueItemType } from '@fastgpt/global/core/chat/type'; @@ -70,7 +70,7 @@ const RenderInput = () => { appId, chatId }); - useRequest2(uploadFiles, { + useRequest(uploadFiles, { manual: false, errorToast: t('common:upload_file_error'), refreshDeps: [fileList, outLinkAuthData] diff --git a/projects/app/src/components/core/chat/components/WholeResponseModal.tsx b/projects/app/src/components/core/chat/components/WholeResponseModal.tsx index bb8da05ff5..f909f43f5f 100644 --- a/projects/app/src/components/core/chat/components/WholeResponseModal.tsx +++ b/projects/app/src/components/core/chat/components/WholeResponseModal.tsx @@ -13,7 +13,7 @@ import { useSystem } from '@fastgpt/web/hooks/useSystem'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { useContextSelector } from 'use-context-selector'; import { ChatBoxContext } from '../ChatContainer/ChatBox/Provider'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getFileIcon } from '@fastgpt/global/common/file/icon'; import EmptyTip from '@fastgpt/web/components/common/EmptyTip'; import { completionFinishReasonMap } from '@fastgpt/global/core/ai/constants'; @@ -819,7 +819,7 @@ const WholeResponseModal = ({ const { t } = useSafeTranslation(); const { getHistoryResponseData } = useContextSelector(ChatBoxContext, (v) => v); - const { loading: isLoading, data: response } = useRequest2( + const { loading: isLoading, data: response } = useRequest( () => getHistoryResponseData({ dataId }), { manual: false diff --git a/projects/app/src/components/core/dataset/SelectModal.tsx b/projects/app/src/components/core/dataset/SelectModal.tsx index 21c7abdcd9..74829da06c 100644 --- a/projects/app/src/components/core/dataset/SelectModal.tsx +++ b/projects/app/src/components/core/dataset/SelectModal.tsx @@ -6,7 +6,7 @@ import { useTranslation } from 'next-i18next'; import { Box } from '@chakra-ui/react'; import FolderPath from '@/components/common/folder/Path'; import MyBox from '@fastgpt/web/components/common/MyBox'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; type PathItemType = { parentId: string; @@ -79,7 +79,7 @@ export function useDatasetSelect() { }, loading: isFetching, runAsync: loadDatasets - } = useRequest2( + } = useRequest( async () => { const result = await Promise.all([ getDatasets({ parentId, searchKey }), diff --git a/projects/app/src/components/support/activity/ActivityAdModal.tsx b/projects/app/src/components/support/activity/ActivityAdModal.tsx index 61f4851091..a476081f8f 100644 --- a/projects/app/src/components/support/activity/ActivityAdModal.tsx +++ b/projects/app/src/components/support/activity/ActivityAdModal.tsx @@ -2,7 +2,7 @@ import React, { useCallback, useMemo } from 'react'; import { useDisclosure } from '@chakra-ui/react'; import { useTranslation } from 'next-i18next'; import { getActivityAd } from '@/web/common/system/api'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { Box, Flex, @@ -33,7 +33,7 @@ const ActivityAdModal = () => { listenStorageChange: true }); - const { data } = useRequest2( + const { data } = useRequest( async () => { if (!feConfigs?.isPlus || !userInfo) return; return getActivityAd(); diff --git a/projects/app/src/components/support/apikey/Table.tsx b/projects/app/src/components/support/apikey/Table.tsx index dd33b4ec33..df4e778d54 100644 --- a/projects/app/src/components/support/apikey/Table.tsx +++ b/projects/app/src/components/support/apikey/Table.tsx @@ -32,7 +32,7 @@ import { useTranslation } from 'next-i18next'; import MyIcon from '@fastgpt/web/components/common/Icon'; import MyModal from '@fastgpt/web/components/common/MyModal'; import { useForm } from 'react-hook-form'; -import { useRequest, useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getDocPath } from '@/web/common/system/doc'; import MyMenu from '@fastgpt/web/components/common/MyMenu'; import { useConfirm } from '@fastgpt/web/hooks/useConfirm'; @@ -62,7 +62,7 @@ const ApiKeyTable = ({ tips, appId }: { tips: string; appId?: string }) => { content: t('common:delete_api') }); - const { runAsync: onclickRemove } = useRequest2(delOpenApiById, { + const { runAsync: onclickRemove } = useRequest(delOpenApiById, { onSuccess() { refetch(); } @@ -72,7 +72,7 @@ const ApiKeyTable = ({ tips, appId }: { tips: string; appId?: string }) => { data: apiKeys = [], loading: isGetting, run: refetch - } = useRequest2(() => getOpenApiKeys({ appId }), { + } = useRequest(() => getOpenApiKeys({ appId }), { manual: false, refreshDeps: [appId] }); @@ -316,19 +316,24 @@ function EditKeyModal({ defaultValues: defaultData }); - const { mutate: onclickCreate, isLoading: creating } = useRequest({ - mutationFn: async (e: EditProps) => createAOpenApiKey(e), - errorToast: t('workflow:create_link_error'), - onSuccess: onCreate - }); - const { mutate: onclickUpdate, isLoading: updating } = useRequest({ - mutationFn: (e: EditProps) => { + const { runAsync: onclickCreate, loading: creating } = useRequest( + async (e: EditProps) => createAOpenApiKey(e), + { + errorToast: t('workflow:create_link_error'), + onSuccess: onCreate + } + ); + + const { runAsync: onclickUpdate, loading: updating } = useRequest( + (e: EditProps) => { //@ts-ignore return putOpenApiKey(e); }, - errorToast: t('workflow:update_link_error'), - onSuccess: onEdit - }); + { + errorToast: t('workflow:update_link_error'), + onSuccess: onEdit + } + ); return ( { + const { runAsync: authLafPat, loading: isPatLoading } = useRequest( + async (pat) => { const token = await postLafPat2Token(pat); setValue('token', token); }, - errorToast: t('common:plugin.Invalid Env') - }); + { + errorToast: t('common:plugin.Invalid Env') + } + ); const { data: appListData = [] } = useQuery( ['appList', lafToken], @@ -80,20 +82,22 @@ const LafAccountModal = ({ } ); - const { mutate: onSubmit, isLoading: isUpdating } = useRequest({ - mutationFn: async (data: LafAccountType) => { + const { runAsync: onSubmit, loading: isUpdating } = useRequest( + async (data: LafAccountType) => { if (!userInfo?.team.teamId) return; return putUpdateTeam({ lafAccount: data }); }, - onSuccess() { - initUserInfo(); - onClose(); - }, - successToast: t('common:update_success'), - errorToast: t('common:update_failed') - }); + { + onSuccess() { + initUserInfo(); + onClose(); + }, + successToast: t('common:update_success'), + errorToast: t('common:update_failed') + } + ); return ( diff --git a/projects/app/src/components/support/permission/ChangeOwnerModal/index.tsx b/projects/app/src/components/support/permission/ChangeOwnerModal/index.tsx index 0cc9274409..d4d261b274 100644 --- a/projects/app/src/components/support/permission/ChangeOwnerModal/index.tsx +++ b/projects/app/src/components/support/permission/ChangeOwnerModal/index.tsx @@ -15,7 +15,7 @@ import Avatar from '@fastgpt/web/components/common/Avatar'; import Icon from '@fastgpt/web/components/common/Icon'; import MyModal from '@fastgpt/web/components/common/MyModal'; import MyTag from '@fastgpt/web/components/common/Tag'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useScrollPagination } from '@fastgpt/web/hooks/useScrollPagination'; import { useTranslation } from 'next-i18next'; import React, { useState } from 'react'; @@ -39,7 +39,7 @@ export function ChangeOwnerModal({ pageSize: 15 }); - const { data: searchedData } = useRequest2( + const { data: searchedData } = useRequest( async () => { if (!inputValue) return; return GetSearchUserGroupOrg(inputValue); @@ -63,7 +63,7 @@ export function ChangeOwnerModal({ 'permission' | 'teamId' > | null>(null); - const { runAsync, loading } = useRequest2(onChangeOwner, { + const { runAsync, loading } = useRequest(onChangeOwner, { onSuccess: onClose, successToast: t('common:permission.change_owner_success'), errorToast: t('common:permission.change_owner_failed') diff --git a/projects/app/src/components/support/permission/DefaultPerList/index.tsx b/projects/app/src/components/support/permission/DefaultPerList/index.tsx index 7c4e3c6280..a8bb145c37 100644 --- a/projects/app/src/components/support/permission/DefaultPerList/index.tsx +++ b/projects/app/src/components/support/permission/DefaultPerList/index.tsx @@ -3,7 +3,7 @@ import MySelect from '@fastgpt/web/components/common/MySelect'; import React from 'react'; import type { PermissionValueType } from '@fastgpt/global/support/permission/type'; import { ReadPermissionVal, WritePermissionVal } from '@fastgpt/global/support/permission/constant'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useConfirm } from '@fastgpt/web/hooks/useConfirm'; import { useTranslation } from 'next-i18next'; @@ -41,7 +41,7 @@ const DefaultPermissionList = ({ { label: t('user:permission.team_write'), value: writePer } ]; - const { runAsync: onRequestChange } = useRequest2((v: PermissionValueType) => onChange(v)); + const { runAsync: onRequestChange } = useRequest((v: PermissionValueType) => onChange(v)); return ( <> diff --git a/projects/app/src/components/support/permission/MemberManager/MemberModal.tsx b/projects/app/src/components/support/permission/MemberManager/MemberModal.tsx index 5547c6269d..521050f7e0 100644 --- a/projects/app/src/components/support/permission/MemberManager/MemberModal.tsx +++ b/projects/app/src/components/support/permission/MemberManager/MemberModal.tsx @@ -15,7 +15,7 @@ import MyAvatar from '@fastgpt/web/components/common/Avatar'; import MyIcon from '@fastgpt/web/components/common/Icon'; import SearchInput from '@fastgpt/web/components/common/Input/SearchInput'; import MyModal from '@fastgpt/web/components/common/MyModal'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useScrollPagination } from '@fastgpt/web/hooks/useScrollPagination'; import { useTranslation } from 'next-i18next'; import { useCallback, useEffect, useMemo, useRef, useState } from 'react'; @@ -76,7 +76,7 @@ function MemberModal({ refreshDeps: [debouncedSearchKey] }); - const { data: groups = [], loading: loadingGroupsAndOrgs } = useRequest2( + const { data: groups = [], loading: loadingGroupsAndOrgs } = useRequest( async () => { if (!userInfo?.team?.teamId) return []; return getGroupList({ @@ -104,7 +104,7 @@ function MemberModal({ const parentClbs = useContextSelector(CollaboratorContext, (v) => v.parentClbList); const myRole = useContextSelector(CollaboratorContext, (v) => v.myRole); - const { runAsync: _onConfirm, loading: isUpdating } = useRequest2( + const { runAsync: _onConfirm, loading: isUpdating } = useRequest( () => onUpdateCollaborators({ collaborators: editCollaborators.map( diff --git a/projects/app/src/components/support/permission/MemberManager/context.tsx b/projects/app/src/components/support/permission/MemberManager/context.tsx index 6c6322e6b0..b0ff7d51d2 100644 --- a/projects/app/src/components/support/permission/MemberManager/context.tsx +++ b/projects/app/src/components/support/permission/MemberManager/context.tsx @@ -15,7 +15,7 @@ import { createContext } from 'use-context-selector'; import dynamic from 'next/dynamic'; import MemberListCard, { type MemberListCardProps } from './MemberListCard'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import type { RequireOnlyOne } from '@fastgpt/global/common/type/utils'; import { useTranslation } from 'next-i18next'; @@ -121,7 +121,7 @@ const CollaboratorContextProvider = ({ }, runAsync: refetchCollaboratorList, loading: isFetchingCollaborator - } = useRequest2( + } = useRequest( async () => { if (feConfigs.isPlus) { const { clbs, parentClbs = [] } = await onGetCollaboratorList(); diff --git a/projects/app/src/components/support/user/inform/ImportantInform.tsx b/projects/app/src/components/support/user/inform/ImportantInform.tsx index 97b97090f6..900934191a 100644 --- a/projects/app/src/components/support/user/inform/ImportantInform.tsx +++ b/projects/app/src/components/support/user/inform/ImportantInform.tsx @@ -13,15 +13,17 @@ const ImportantInform = ({ informs: UserInformSchema[]; refetch: () => void; }) => { - const { mutate: onClickClose } = useRequest({ - mutationFn: async (id: string) => { + const { runAsync: onClickClose } = useRequest( + async (id: string) => { await readInform(id); }, - onSuccess: () => { - refetch(); - }, - errorToast: 'Failed to read the inform' - }); + { + onSuccess: () => { + refetch(); + }, + errorToast: 'Failed to read the inform' + } + ); return ( diff --git a/projects/app/src/components/support/user/inform/SystemMsgModal.tsx b/projects/app/src/components/support/user/inform/SystemMsgModal.tsx index 607456c9bc..dc21d97477 100644 --- a/projects/app/src/components/support/user/inform/SystemMsgModal.tsx +++ b/projects/app/src/components/support/user/inform/SystemMsgModal.tsx @@ -6,7 +6,7 @@ import { useTranslation } from 'next-i18next'; import { LOGO_ICON } from '@fastgpt/global/common/system/constants'; import { getSystemMsgModalData } from '@/web/support/user/inform/api'; import dynamic from 'next/dynamic'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { webPushTrack } from '@/web/common/middle/tracks/utils'; const Markdown = dynamic(() => import('@/components/Markdown'), { ssr: false }); @@ -16,7 +16,7 @@ const SystemMsgModal = ({}: {}) => { const { isOpen, onOpen, onClose } = useDisclosure(); - const { data } = useRequest2( + const { data } = useRequest( async () => { if (!userInfo?._id) { return; diff --git a/projects/app/src/components/support/user/inform/UpdateContactModal.tsx b/projects/app/src/components/support/user/inform/UpdateContactModal.tsx index 0845d37c23..c4ca3f878f 100644 --- a/projects/app/src/components/support/user/inform/UpdateContactModal.tsx +++ b/projects/app/src/components/support/user/inform/UpdateContactModal.tsx @@ -3,7 +3,7 @@ import { ModalBody, Box, Flex, Input, ModalFooter, Button, HStack } from '@chakr import MyModal from '@fastgpt/web/components/common/MyModal'; import { useTranslation } from 'next-i18next'; import { useForm } from 'react-hook-form'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { updateContact, updateNotificationAccount } from '@/web/support/user/api'; import Icon from '@fastgpt/web/components/common/Icon'; import { useSendCode } from '@/web/support/user/hooks/useSendCode'; @@ -38,7 +38,7 @@ const UpdateContactModal = ({ const account = watch('contact'); const verifyCode = watch('verifyCode'); - const { runAsync: onSubmit, loading: isLoading } = useRequest2( + const { runAsync: onSubmit, loading: isLoading } = useRequest( async (data: FormType) => { if (mode === 'contact') { await updateContact(data); diff --git a/projects/app/src/components/support/user/safe/ResetExpiredPswModal.tsx b/projects/app/src/components/support/user/safe/ResetExpiredPswModal.tsx index 35608fff4d..f4e5da9816 100644 --- a/projects/app/src/components/support/user/safe/ResetExpiredPswModal.tsx +++ b/projects/app/src/components/support/user/safe/ResetExpiredPswModal.tsx @@ -3,7 +3,7 @@ import { ModalBody, Box, Flex, Input, ModalFooter, Button, HStack } from '@chakr import MyModal from '@fastgpt/web/components/common/MyModal'; import { useTranslation } from 'next-i18next'; import { useForm } from 'react-hook-form'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { resetPassword, getCheckPswExpired } from '@/web/support/user/api'; import { checkPasswordRule } from '@fastgpt/global/common/string/password'; import { useToast } from '@fastgpt/web/hooks/useToast'; @@ -31,7 +31,7 @@ const ResetPswModal = () => { data: passwordExpired = false, runAsync, loading: isFetching - } = useRequest2( + } = useRequest( async () => { if (!userInfo?._id) { return false; @@ -44,7 +44,7 @@ const ResetPswModal = () => { } ); - const { runAsync: onSubmit, loading: isSubmitting } = useRequest2(resetPassword, { + const { runAsync: onSubmit, loading: isSubmitting } = useRequest(resetPassword, { onSuccess() { runAsync(); }, diff --git a/projects/app/src/components/support/user/safe/SendCodeAuthModal.tsx b/projects/app/src/components/support/user/safe/SendCodeAuthModal.tsx index c8a694c574..c4e137e269 100644 --- a/projects/app/src/components/support/user/safe/SendCodeAuthModal.tsx +++ b/projects/app/src/components/support/user/safe/SendCodeAuthModal.tsx @@ -2,7 +2,7 @@ import { getCaptchaPic } from '@/web/support/user/api'; import { Button, Input, ModalBody, ModalFooter, Skeleton } from '@chakra-ui/react'; import MyImage from '@fastgpt/web/components/common/Image/MyImage'; import MyModal from '@fastgpt/web/components/common/MyModal'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; import { useForm } from 'react-hook-form'; @@ -30,7 +30,7 @@ const SendCodeAuthModal = ({ data, loading, runAsync: getCaptcha - } = useRequest2(() => getCaptchaPic(username), { manual: false }); + } = useRequest(() => getCaptchaPic(username), { manual: false }); const onSubmit = async ({ code }: { code: string }) => { await onSendCode({ username, captcha: code }); diff --git a/projects/app/src/components/support/user/team/TeamTagModal/index.tsx b/projects/app/src/components/support/user/team/TeamTagModal/index.tsx index d7678f0bd8..6db22cf758 100644 --- a/projects/app/src/components/support/user/team/TeamTagModal/index.tsx +++ b/projects/app/src/components/support/user/team/TeamTagModal/index.tsx @@ -55,23 +55,27 @@ const TeamTagsAsync = ({ onClose }: { onClose: () => void }) => { const linkUrl = `${baseUrl}/chat/team?teamId=${teamInfo.teamId}&teamToken=`; // tags Async - const { mutate: onclickUpdate, isLoading: isUpdating } = useRequest({ - mutationFn: async (data: FormType) => { + const { runAsync: onclickUpdate, loading: isUpdating } = useRequest( + async (data: FormType) => { return putUpdateTeam({ teamDomain: data.teamDomain }); }, - onSuccess() { - initUserInfo(); - onClose(); - }, - errorToast: t('common:create_failed') - }); - const { mutate: onclickTagAsync, isLoading: isSyncing } = useRequest({ - mutationFn: (data: FormType) => loadTeamTagsByDomain(data.teamDomain), - onSuccess(res) { - replaceTeamTags(res); - }, - successToast: t('common:support.user.team.Team Tags Async Success') - }); + { + onSuccess() { + initUserInfo(); + onClose(); + }, + errorToast: t('common:create_failed') + } + ); + const { runAsync: onclickTagAsync, loading: isSyncing } = useRequest( + (data: FormType) => loadTeamTagsByDomain(data.teamDomain), + { + onSuccess(res) { + replaceTeamTags(res); + }, + successToast: t('common:support.user.team.Team Tags Async Success') + } + ); useQuery(['getTeamsTags'], getTeamsTags, { onSuccess: (data) => { diff --git a/projects/app/src/components/support/wallet/QRCodePayModal.tsx b/projects/app/src/components/support/wallet/QRCodePayModal.tsx index c4b62ab84b..8d365510e5 100644 --- a/projects/app/src/components/support/wallet/QRCodePayModal.tsx +++ b/projects/app/src/components/support/wallet/QRCodePayModal.tsx @@ -5,7 +5,7 @@ import { Box, ModalBody, Flex, Button, Text, Link } from '@chakra-ui/react'; import { checkBalancePayResult, putUpdatePayment } from '@/web/support/wallet/bill/api'; import LightTip from '@fastgpt/web/components/common/LightTip'; import QRCode from 'qrcode'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { BillPayWayEnum, BillStatusEnum, @@ -79,7 +79,7 @@ const QRCodePayModal = ({ }); const [selectedPayment, setSelectedPayment] = useState(payment); - const { runAsync: handlePaymentChange, loading: isUpdating } = useRequest2( + const { runAsync: handlePaymentChange, loading: isUpdating } = useRequest( async (newPayment: BillPayWayEnum) => { if (newPayment === selectedPayment) { return; @@ -95,7 +95,7 @@ const QRCodePayModal = ({ ); // Check pay result - useRequest2(() => checkBalancePayResult(billId), { + useRequest(() => checkBalancePayResult(billId), { manual: false, pollingInterval: 2000, onSuccess: ({ status, description }) => { diff --git a/projects/app/src/pageComponents/account/TeamSelector.tsx b/projects/app/src/pageComponents/account/TeamSelector.tsx index b842894174..3af351e309 100644 --- a/projects/app/src/pageComponents/account/TeamSelector.tsx +++ b/projects/app/src/pageComponents/account/TeamSelector.tsx @@ -4,7 +4,7 @@ import { useUserStore } from '@/web/support/user/useUserStore'; import { useTranslation } from 'next-i18next'; import { getTeamList, putSwitchTeam } from '@/web/support/user/team/api'; import { TeamMemberStatusEnum } from '@fastgpt/global/support/user/team/constant'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import MySelect from '@fastgpt/web/components/common/MySelect'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import { useRouter } from 'next/router'; @@ -24,12 +24,12 @@ const TeamSelector = ({ const { userInfo } = useUserStore(); const { setLoading } = useSystemStore(); - const { data: myTeams = [] } = useRequest2(() => getTeamList(TeamMemberStatusEnum.active), { + const { data: myTeams = [] } = useRequest(() => getTeamList(TeamMemberStatusEnum.active), { manual: false, refreshDeps: [userInfo] }); - const { runAsync: onSwitchTeam } = useRequest2( + const { runAsync: onSwitchTeam } = useRequest( async (teamId: string) => { setLoading(true); await putSwitchTeam(teamId); diff --git a/projects/app/src/pageComponents/account/bill/ApplyInvoiceModal.tsx b/projects/app/src/pageComponents/account/bill/ApplyInvoiceModal.tsx index ff05ca8fee..238d85a187 100644 --- a/projects/app/src/pageComponents/account/bill/ApplyInvoiceModal.tsx +++ b/projects/app/src/pageComponents/account/bill/ApplyInvoiceModal.tsx @@ -22,7 +22,7 @@ import { import { billTypeMap } from '@fastgpt/global/support/wallet/bill/constants'; import { formatStorePrice2Read } from '@fastgpt/global/support/wallet/usage/tools'; import MyModal from '@fastgpt/web/components/common/MyModal'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import dayjs from 'dayjs'; import { useTranslation } from 'next-i18next'; import { useCallback, useState } from 'react'; @@ -57,7 +57,7 @@ const ApplyInvoiceModal = ({ onClose }: { onClose: () => void }) => { loading: isLoading, data: billsList, run: getInvoiceBills - } = useRequest2(() => getInvoiceBillsList(), { + } = useRequest(() => getInvoiceBillsList(), { manual: false }); @@ -72,7 +72,7 @@ const ApplyInvoiceModal = ({ onClose }: { onClose: () => void }) => { [chosenBillDataList] ); - const { runAsync: onSubmitApply, loading: isSubmitting } = useRequest2( + const { runAsync: onSubmitApply, loading: isSubmitting } = useRequest( (data) => submitInvoice({ amount: totalPrice, @@ -104,7 +104,7 @@ const ApplyInvoiceModal = ({ onClose }: { onClose: () => void }) => { } }); - const { loading: isLoadingHeader } = useRequest2(() => getTeamInvoiceHeader(), { + const { loading: isLoadingHeader } = useRequest(() => getTeamInvoiceHeader(), { manual: false, onSuccess: (res) => inputForm.reset(res) }); diff --git a/projects/app/src/pageComponents/account/bill/BillDetailModal.tsx b/projects/app/src/pageComponents/account/bill/BillDetailModal.tsx index 61638f4c3f..15684fe430 100644 --- a/projects/app/src/pageComponents/account/bill/BillDetailModal.tsx +++ b/projects/app/src/pageComponents/account/bill/BillDetailModal.tsx @@ -11,7 +11,7 @@ import { } from '@fastgpt/global/support/wallet/bill/constants'; import { formatStorePrice2Read } from '@fastgpt/global/support/wallet/usage/tools'; import { standardSubLevelMap, subModeMap } from '@fastgpt/global/support/wallet/sub/constants'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getBillDetail } from '@/web/support/wallet/bill/api'; import { i18nT } from '@fastgpt/web/i18n/utils'; @@ -23,7 +23,7 @@ type BillDetailModalProps = { const BillDetailModal = ({ billId, onClose }: BillDetailModalProps) => { const { t } = useTranslation(); - const { data: bill, loading } = useRequest2(() => getBillDetail(billId), { + const { data: bill, loading } = useRequest(() => getBillDetail(billId), { refreshDeps: [billId], manual: false }); diff --git a/projects/app/src/pageComponents/account/bill/BillTable.tsx b/projects/app/src/pageComponents/account/bill/BillTable.tsx index 2bd276acb5..04a16cb5cd 100644 --- a/projects/app/src/pageComponents/account/bill/BillTable.tsx +++ b/projects/app/src/pageComponents/account/bill/BillTable.tsx @@ -29,7 +29,7 @@ import { billTypeMap } from '@fastgpt/global/support/wallet/bill/constants'; import MyBox from '@fastgpt/web/components/common/MyBox'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import MySelect from '@fastgpt/web/components/common/MySelect'; import { usePagination } from '@fastgpt/web/hooks/usePagination'; import QRCodePayModal, { type QRPayProps } from '@/components/support/wallet/QRCodePayModal'; @@ -75,7 +75,7 @@ const BillTable = () => { refreshDeps: [billType] }); - const { runAsync: handleRefreshPayOrder, loading: isRefreshing } = useRequest2( + const { runAsync: handleRefreshPayOrder, loading: isRefreshing } = useRequest( async (bill: BillSchemaType) => { const { status, description } = await checkBalancePayResult(bill._id); if (status === BillStatusEnum.SUCCESS) { @@ -109,7 +109,7 @@ const BillTable = () => { } ); - const { runAsync: handleCancelBill, loading: isCancelling } = useRequest2( + const { runAsync: handleCancelBill, loading: isCancelling } = useRequest( async (billId: string) => { await cancelBill({ billId }); }, diff --git a/projects/app/src/pageComponents/account/bill/InvoiceHeaderForm.tsx b/projects/app/src/pageComponents/account/bill/InvoiceHeaderForm.tsx index 75cbef1903..a9cfc56aa5 100644 --- a/projects/app/src/pageComponents/account/bill/InvoiceHeaderForm.tsx +++ b/projects/app/src/pageComponents/account/bill/InvoiceHeaderForm.tsx @@ -12,7 +12,7 @@ import { } from '@chakra-ui/react'; import { type TeamInvoiceHeaderType } from '@fastgpt/global/support/user/team/type'; import MyBox from '@fastgpt/web/components/common/MyBox'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; import { type UseFormReturn, useForm } from 'react-hook-form'; import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; @@ -209,7 +209,7 @@ const InvoiceHeaderForm = () => { } }); - const { loading: isLoading } = useRequest2(() => getTeamInvoiceHeader(), { + const { loading: isLoading } = useRequest(() => getTeamInvoiceHeader(), { manual: false, onSuccess: (data) => { console.log(data, '--'); @@ -219,7 +219,7 @@ const InvoiceHeaderForm = () => { const { t } = useTranslation(); - const { loading: isSubmitting, runAsync: onUpdateHeader } = useRequest2( + const { loading: isSubmitting, runAsync: onUpdateHeader } = useRequest( (data: TeamInvoiceHeaderType) => updateTeamInvoiceHeader(data), { manual: true, diff --git a/projects/app/src/pageComponents/account/bill/InvoiceTable.tsx b/projects/app/src/pageComponents/account/bill/InvoiceTable.tsx index 4014228a41..70ed5e3c74 100644 --- a/projects/app/src/pageComponents/account/bill/InvoiceTable.tsx +++ b/projects/app/src/pageComponents/account/bill/InvoiceTable.tsx @@ -22,7 +22,7 @@ import MyIcon from '@fastgpt/web/components/common/Icon'; import dayjs from 'dayjs'; import { formatStorePrice2Read } from '@fastgpt/global/support/wallet/usage/tools'; import MyModal from '@fastgpt/web/components/common/MyModal'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { downloadFetch } from '@/web/common/system/utils'; const InvoiceTable = () => { @@ -139,7 +139,7 @@ function InvoiceDetailModal({ }) { const { t } = useTranslation(); - const { runAsync: handleDownloadInvoice } = useRequest2(async (id: string) => { + const { runAsync: handleDownloadInvoice } = useRequest(async (id: string) => { await downloadFetch({ url: `/api/proApi/support/wallet/bill/invoice/downloadFile?id=${id}`, filename: `${invoice.teamName}.pdf` diff --git a/projects/app/src/pageComponents/account/customDomain/createModal.tsx b/projects/app/src/pageComponents/account/customDomain/createModal.tsx index 4b8baa92d1..ae10b64901 100644 --- a/projects/app/src/pageComponents/account/customDomain/createModal.tsx +++ b/projects/app/src/pageComponents/account/customDomain/createModal.tsx @@ -29,7 +29,7 @@ import type { ProviderEnum } from '@fastgpt/global/support/customDomain/type'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import { generateCNAMEDomain } from '@fastgpt/global/support/customDomain/utils'; import { useCopyData } from '@fastgpt/web/hooks/useCopyData'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { activeCustomDomain, checkCustomDomainDNSResolve, @@ -117,7 +117,7 @@ function CreateCustomDomainModal({ const [DnsResolved, setDnsResolved] = useState(false); const [startDnsResolve, setStartDnsResolve] = useState(type === 'create'); - const { runAsync: checkDNSResolve } = useRequest2( + const { runAsync: checkDNSResolve } = useRequest( () => checkCustomDomainDNSResolve({ cnameDomain, domain }), { manual: true, @@ -128,13 +128,13 @@ function CreateCustomDomainModal({ } ); - const { runAsync: activeDomain } = useRequest2(activeCustomDomain, { + const { runAsync: activeDomain } = useRequest(activeCustomDomain, { manual: true, onSuccess: () => onClose(), successToast: t('common:Success') }); - const { runAsync: createDomain, loading: loadingCreatingDomain } = useRequest2( + const { runAsync: createDomain, loading: loadingCreatingDomain } = useRequest( createCustomDomain, { manual: true, diff --git a/projects/app/src/pageComponents/account/customDomain/domainVerifyModal.tsx b/projects/app/src/pageComponents/account/customDomain/domainVerifyModal.tsx index 145877083b..c9711b2fe8 100644 --- a/projects/app/src/pageComponents/account/customDomain/domainVerifyModal.tsx +++ b/projects/app/src/pageComponents/account/customDomain/domainVerifyModal.tsx @@ -1,7 +1,7 @@ import { ModalBody, Box, Input, Button, ModalFooter, Grid } from '@chakra-ui/react'; import MyModal from '@fastgpt/web/components/common/MyModal'; import { useTranslation } from 'next-i18next'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { updateCustomDomainVerifyFile } from '@/web/support/customDomain/api'; import { useForm } from 'react-hook-form'; import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; @@ -18,7 +18,7 @@ function domainVerifyModal({ onClose, domain }: { onClose: () => void; domain: s const path = watch('path'); const content = watch('content'); - const { runAsync: updateVerifyFile, loading: isUpdating } = useRequest2( + const { runAsync: updateVerifyFile, loading: isUpdating } = useRequest( updateCustomDomainVerifyFile, { manual: true, diff --git a/projects/app/src/pageComponents/account/info/ConversionModal.tsx b/projects/app/src/pageComponents/account/info/ConversionModal.tsx index 223a73f1e3..a707a02a6d 100644 --- a/projects/app/src/pageComponents/account/info/ConversionModal.tsx +++ b/projects/app/src/pageComponents/account/info/ConversionModal.tsx @@ -4,7 +4,7 @@ import MyModal from '@fastgpt/web/components/common/MyModal'; import { useTranslation } from 'next-i18next'; import Icon from '@fastgpt/web/components/common/Icon'; import Tag from '@fastgpt/web/components/common/Tag'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { balanceConversion } from '@/web/support/wallet/bill/api'; import { useUserStore } from '@/web/support/user/useUserStore'; import { formatStorePrice2Read } from '@fastgpt/global/support/wallet/usage/tools'; @@ -29,7 +29,7 @@ const ConversionModal = ({ return Math.ceil((balance / 15) * SUB_EXTRA_POINT_RATE); }, []); - const { runAsync: onConvert, loading } = useRequest2(balanceConversion, { + const { runAsync: onConvert, loading } = useRequest(balanceConversion, { onSuccess() { router.reload(); }, diff --git a/projects/app/src/pageComponents/account/info/DiscountCouponsModal.tsx b/projects/app/src/pageComponents/account/info/DiscountCouponsModal.tsx index dd1919e10c..b9fff27ebb 100644 --- a/projects/app/src/pageComponents/account/info/DiscountCouponsModal.tsx +++ b/projects/app/src/pageComponents/account/info/DiscountCouponsModal.tsx @@ -4,7 +4,7 @@ import { Box, Flex, Button, ModalBody } from '@chakra-ui/react'; import { useTranslation } from 'next-i18next'; import { useUserStore } from '@/web/support/user/useUserStore'; import dayjs from 'dayjs'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getDiscountCouponList } from '@/web/support/wallet/sub/discountCoupon/api'; import EmptyTip from '@fastgpt/web/components/common/EmptyTip'; import { useRouter } from 'next/router'; @@ -21,7 +21,7 @@ const DiscountCouponsModal = ({ onClose }: { onClose: () => void }) => { const [billId, setBillId] = useState(); const teamId = userInfo?.team?.teamId; - const { data: coupons = [], loading } = useRequest2( + const { data: coupons = [], loading } = useRequest( async () => { if (!teamId) return []; return getDiscountCouponList(teamId); diff --git a/projects/app/src/pageComponents/account/info/RedeemCouponModal.tsx b/projects/app/src/pageComponents/account/info/RedeemCouponModal.tsx index 74e889da46..c17de4ef16 100644 --- a/projects/app/src/pageComponents/account/info/RedeemCouponModal.tsx +++ b/projects/app/src/pageComponents/account/info/RedeemCouponModal.tsx @@ -1,7 +1,7 @@ import { redeemCoupon } from '@/web/support/user/team/api'; import { Button, Input, VStack, Text, ModalBody, Box, ModalFooter } from '@chakra-ui/react'; import MyModal from '@fastgpt/web/components/common/MyModal'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import React from 'react'; import { useTranslation } from 'next-i18next'; @@ -16,7 +16,7 @@ const RedeemCouponModal = ({ const [couponCode, setCouponCode] = React.useState(''); - const { runAsync: redeemCouponAsync, loading } = useRequest2(redeemCoupon, { + const { runAsync: redeemCouponAsync, loading } = useRequest(redeemCoupon, { manual: true, onSuccess: () => { onSuccess(); diff --git a/projects/app/src/pageComponents/account/info/UpdatePswModal.tsx b/projects/app/src/pageComponents/account/info/UpdatePswModal.tsx index c49bdf60a9..7786127aaf 100644 --- a/projects/app/src/pageComponents/account/info/UpdatePswModal.tsx +++ b/projects/app/src/pageComponents/account/info/UpdatePswModal.tsx @@ -3,7 +3,7 @@ import { ModalBody, Box, Flex, Input, ModalFooter, Button } from '@chakra-ui/rea import MyModal from '@fastgpt/web/components/common/MyModal'; import { useTranslation } from 'next-i18next'; import { useForm } from 'react-hook-form'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { updatePasswordByOld } from '@/web/support/user/api'; import { useToast } from '@fastgpt/web/hooks/useToast'; import { checkPasswordRule } from '@fastgpt/global/common/string/password'; @@ -26,7 +26,7 @@ const UpdatePswModal = ({ onClose }: { onClose: () => void }) => { } }); - const { runAsync: onSubmit, loading: isLoading } = useRequest2(updatePasswordByOld, { + const { runAsync: onSubmit, loading: isLoading } = useRequest(updatePasswordByOld, { onSuccess() { onClose(); }, diff --git a/projects/app/src/pageComponents/account/info/standardDetailModal.tsx b/projects/app/src/pageComponents/account/info/standardDetailModal.tsx index 1ab1b8daea..f6adb0de46 100644 --- a/projects/app/src/pageComponents/account/info/standardDetailModal.tsx +++ b/projects/app/src/pageComponents/account/info/standardDetailModal.tsx @@ -26,7 +26,7 @@ import { } from '@fastgpt/global/support/wallet/sub/constants'; import { formatTime2YMDHM } from '@fastgpt/global/common/string/time'; import { useSystemStore } from '@/web/common/system/useSystemStore'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; type packageStatus = 'active' | 'inactive' | 'expired'; @@ -34,7 +34,7 @@ const StandDetailModal = ({ onClose }: { onClose: () => void }) => { const { t } = useTranslation(); const { Loading } = useLoading(); const { subPlans } = useSystemStore(); - const { data: teamPlans = [], loading: isLoading } = useRequest2( + const { data: teamPlans = [], loading: isLoading } = useRequest( () => getTeamPlans().then((res) => { return [ diff --git a/projects/app/src/pageComponents/account/model/AddModelBox.tsx b/projects/app/src/pageComponents/account/model/AddModelBox.tsx index 96eedadf25..4600f8aa74 100644 --- a/projects/app/src/pageComponents/account/model/AddModelBox.tsx +++ b/projects/app/src/pageComponents/account/model/AddModelBox.tsx @@ -21,7 +21,7 @@ import React, { useMemo, useRef, useState } from 'react'; import MySelect from '@fastgpt/web/components/common/MySelect'; import { ModelTypeEnum } from '@fastgpt/global/core/ai/model'; import Avatar from '@fastgpt/web/components/common/Avatar'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getSystemModelDefaultConfig, putSystemModel } from '@/web/core/ai/config'; import { type SystemModelItemType } from '@fastgpt/service/core/ai/type'; import { useForm } from 'react-hook-form'; @@ -126,7 +126,7 @@ export const ModelEditModal = ({ return ''; }, [isLLMModel, isEmbeddingModel, isTTSModel, t, isSTTModel, isRerankModel]); - const { runAsync: updateModel, loading: updatingModel } = useRequest2( + const { runAsync: updateModel, loading: updatingModel } = useRequest( async (data: SystemModelItemType) => { for (const key in data) { // @ts-ignore @@ -151,7 +151,7 @@ export const ModelEditModal = ({ ); const [key, setKey] = useState(0); - const { runAsync: loadDefaultConfig, loading: loadingDefaultConfig } = useRequest2( + const { runAsync: loadDefaultConfig, loading: loadingDefaultConfig } = useRequest( getSystemModelDefaultConfig, { onSuccess(res) { diff --git a/projects/app/src/pageComponents/account/model/Channel/EditChannelModal.tsx b/projects/app/src/pageComponents/account/model/Channel/EditChannelModal.tsx index 0220ba20cc..67cb3d4557 100644 --- a/projects/app/src/pageComponents/account/model/Channel/EditChannelModal.tsx +++ b/projects/app/src/pageComponents/account/model/Channel/EditChannelModal.tsx @@ -28,7 +28,7 @@ import { type SystemModelItemType } from '@fastgpt/service/core/ai/type'; import type { ModelTypeEnum } from '@fastgpt/global/core/ai/model'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import { getSystemModelList } from '@/web/core/ai/config'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import MyIcon from '@fastgpt/web/components/common/Icon'; import MyAvatar from '@fastgpt/web/components/common/Avatar'; import MyTag from '@fastgpt/web/components/common/Tag/index'; @@ -66,7 +66,7 @@ const EditChannelModal = ({ }); const providerType = watch('type'); - const { data: providerList = [] } = useRequest2( + const { data: providerList = [] } = useRequest( () => getChannelProviders().then((res) => { return Object.entries(res) @@ -122,7 +122,7 @@ const EditChannelModal = ({ data: systemModelList = [], runAsync: refreshSystemModelList, loading: loadingModels - } = useRequest2(getSystemModelList, { + } = useRequest(getSystemModelList, { manual: false }); const modelList = useMemo(() => { @@ -150,7 +150,7 @@ const EditChannelModal = ({ const modelMapping = watch('model_mapping'); - const { runAsync: onSubmit, loading: loadingCreate } = useRequest2( + const { runAsync: onSubmit, loading: loadingCreate } = useRequest( (data: ChannelInfoType) => { if (data.models.length === 0) { return Promise.reject(t('account_model:selected_model_empty')); diff --git a/projects/app/src/pageComponents/account/model/Channel/ModelTest.tsx b/projects/app/src/pageComponents/account/model/Channel/ModelTest.tsx index e1ebd778b2..e45de1ea73 100644 --- a/projects/app/src/pageComponents/account/model/Channel/ModelTest.tsx +++ b/projects/app/src/pageComponents/account/model/Channel/ModelTest.tsx @@ -14,7 +14,7 @@ import { ModalBody, ModalFooter } from '@chakra-ui/react'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import React, { useRef, useState } from 'react'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { useTranslation } from 'next-i18next'; @@ -69,7 +69,7 @@ const ModelTest = ({ } }); - const { loading: loadingModels } = useRequest2(getSystemModelList, { + const { loading: loadingModels } = useRequest(getSystemModelList, { manual: false, refreshDeps: [models], onSuccess(res) { @@ -96,7 +96,7 @@ const ModelTest = ({ } }); - const { runAsync: onStartTest, loading: isAnyModelLoading } = useRequest2( + const { runAsync: onStartTest, loading: isAnyModelLoading } = useRequest( async () => { let errorNum = 0; setTestModelList((prev) => prev.map((item) => ({ ...item, loading: true }))); @@ -148,7 +148,7 @@ const ModelTest = ({ } ); - const { runAsync: onTestOneModel, loading: testingOneModel } = useRequest2( + const { runAsync: onTestOneModel, loading: testingOneModel } = useRequest( async (model: string) => { const start = Date.now(); diff --git a/projects/app/src/pageComponents/account/model/Channel/index.tsx b/projects/app/src/pageComponents/account/model/Channel/index.tsx index e262ff6b27..e63fe5d58a 100644 --- a/projects/app/src/pageComponents/account/model/Channel/index.tsx +++ b/projects/app/src/pageComponents/account/model/Channel/index.tsx @@ -5,7 +5,7 @@ import { putChannel, putChannelStatus } from '@/web/core/ai/channel'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import React, { useState } from 'react'; import { Table, @@ -52,23 +52,23 @@ const ChannelTable = ({ Tab }: { Tab: React.ReactNode }) => { data: channelList = [], runAsync: refreshChannelList, loading: loadingChannelList - } = useRequest2(getChannelList, { + } = useRequest(getChannelList, { manual: false }); - const { data: channelProviders = {} } = useRequest2(getChannelProviders, { + const { data: channelProviders = {} } = useRequest(getChannelProviders, { manual: false }); const [editChannel, setEditChannel] = useState(); - const { runAsync: updateChannel, loading: loadingUpdateChannel } = useRequest2(putChannel, { + const { runAsync: updateChannel, loading: loadingUpdateChannel } = useRequest(putChannel, { manual: true, onSuccess: () => { refreshChannelList(); } }); - const { runAsync: updateChannelStatus, loading: loadingUpdateChannelStatus } = useRequest2( + const { runAsync: updateChannelStatus, loading: loadingUpdateChannelStatus } = useRequest( putChannelStatus, { onSuccess: () => { @@ -80,7 +80,7 @@ const ChannelTable = ({ Tab }: { Tab: React.ReactNode }) => { const { openConfirm, ConfirmModal } = useConfirm({ type: 'delete' }); - const { runAsync: onDeleteChannel, loading: loadingDeleteChannel } = useRequest2(deleteChannel, { + const { runAsync: onDeleteChannel, loading: loadingDeleteChannel } = useRequest(deleteChannel, { manual: true, onSuccess: () => { refreshChannelList(); diff --git a/projects/app/src/pageComponents/account/model/Log/index.tsx b/projects/app/src/pageComponents/account/model/Log/index.tsx index 585abe8b33..52290f803e 100644 --- a/projects/app/src/pageComponents/account/model/Log/index.tsx +++ b/projects/app/src/pageComponents/account/model/Log/index.tsx @@ -24,7 +24,7 @@ import DateRangePicker, { import MyBox from '@fastgpt/web/components/common/MyBox'; import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; import MySelect from '@fastgpt/web/components/common/MySelect'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useScrollPagination } from '@fastgpt/web/hooks/useScrollPagination'; import { addDays } from 'date-fns'; import { useTranslation } from 'next-i18next'; @@ -77,7 +77,7 @@ const ChannelLog = ({ Tab }: { Tab: React.ReactNode }) => { } }); - const { data: channelList = [] } = useRequest2( + const { data: channelList = [] } = useRequest( async () => { const res = await getChannelList().then((res) => res.map((item) => ({ @@ -98,7 +98,7 @@ const ChannelLog = ({ Tab }: { Tab: React.ReactNode }) => { } ); - const { data: systemModelList = [] } = useRequest2(getSystemModelList, { + const { data: systemModelList = [] } = useRequest(getSystemModelList, { manual: false }); const modelList = useMemo(() => { @@ -288,7 +288,7 @@ export default ChannelLog; const LogDetail = ({ data, onClose }: { data: LogDetailType; onClose: () => void }) => { const { t } = useTranslation(); - const { data: detailData } = useRequest2( + const { data: detailData } = useRequest( async () => { if (data.code === 200) return data; try { diff --git a/projects/app/src/pageComponents/account/model/ModelConfigTable.tsx b/projects/app/src/pageComponents/account/model/ModelConfigTable.tsx index 7422a9d7bf..b384724157 100644 --- a/projects/app/src/pageComponents/account/model/ModelConfigTable.tsx +++ b/projects/app/src/pageComponents/account/model/ModelConfigTable.tsx @@ -24,7 +24,7 @@ import SearchInput from '@fastgpt/web/components/common/Input/SearchInput'; import Avatar from '@fastgpt/web/components/common/Avatar'; import MyTag from '@fastgpt/web/components/common/Tag/index'; import dynamic from 'next/dynamic'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { deleteSystemModel, getModelConfigJson, @@ -87,7 +87,7 @@ const ModelTable = ({ Tab }: { Tab: React.ReactNode }) => { data: systemModelList = [], runAsync: refreshSystemModelList, loading: loadingModels - } = useRequest2(getSystemModelList, { + } = useRequest(getSystemModelList, { manual: false }); const refreshModels = useCallback(async () => { @@ -256,20 +256,20 @@ const ModelTable = ({ Tab }: { Tab: React.ReactNode }) => { ); }, [systemModelList]); - const { runAsync: onTestModel, loading: testingModel } = useRequest2(getTestModel, { + const { runAsync: onTestModel, loading: testingModel } = useRequest(getTestModel, { manual: true, successToast: t('common:Success') }); - const { runAsync: updateModel, loading: updatingModel } = useRequest2(putSystemModel, { + const { runAsync: updateModel, loading: updatingModel } = useRequest(putSystemModel, { onSuccess: refreshModels }); - const { runAsync: deleteModel } = useRequest2(deleteSystemModel, { + const { runAsync: deleteModel } = useRequest(deleteSystemModel, { onSuccess: refreshModels }); const [editModelData, setEditModelData] = useState(); - const { runAsync: onEditModel, loading: loadingData } = useRequest2( + const { runAsync: onEditModel, loading: loadingData } = useRequest( (modelId: string) => getSystemModelDetail(modelId), { onSuccess: (data: SystemModelItemType) => { @@ -507,14 +507,14 @@ const JsonConfigModal = ({ const { t } = useTranslation(); const [data, setData] = useState(''); - const { loading } = useRequest2(getModelConfigJson, { + const { loading } = useRequest(getModelConfigJson, { manual: false, onSuccess(res) { setData(res); } }); - const { runAsync } = useRequest2(putUpdateWithJson, { + const { runAsync } = useRequest(putUpdateWithJson, { onSuccess: () => { onSuccess(); onClose(); @@ -583,7 +583,7 @@ const DefaultModelModal = ({ // Create a copy of defaultModels for local state management const [defaultData, setDefaultData] = useState(defaultModels); - const { runAsync, loading } = useRequest2(putUpdateDefaultModels, { + const { runAsync, loading } = useRequest(putUpdateDefaultModels, { onSuccess: () => { onSuccess(); onClose(); diff --git a/projects/app/src/pageComponents/account/model/ModelDashboard/index.tsx b/projects/app/src/pageComponents/account/model/ModelDashboard/index.tsx index aab9677cc5..79919ca6f9 100644 --- a/projects/app/src/pageComponents/account/model/ModelDashboard/index.tsx +++ b/projects/app/src/pageComponents/account/model/ModelDashboard/index.tsx @@ -2,7 +2,7 @@ import React, { useMemo, useState } from 'react'; import type { BoxProps } from '@chakra-ui/react'; import { Box, Grid, HStack, useTheme } from '@chakra-ui/react'; import MyBox from '@fastgpt/web/components/common/MyBox'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; import { addHours } from 'date-fns'; import dayjs from 'dayjs'; @@ -84,7 +84,7 @@ const ModelDashboard = ({ Tab }: { Tab: React.ReactNode }) => { }); // Fetch channel list with "All" option - const { data: channelList = [] } = useRequest2( + const { data: channelList = [] } = useRequest( async () => { const res = await getChannelList().then((res) => res.map((item) => ({ @@ -106,7 +106,7 @@ const ModelDashboard = ({ Tab }: { Tab: React.ReactNode }) => { ); // Get model list filtered by selected channel - const { data: systemModelList = [] } = useRequest2(getSystemModelList, { + const { data: systemModelList = [] } = useRequest(getSystemModelList, { manual: false }); const modelList = useMemo(() => { @@ -193,7 +193,7 @@ const ModelDashboard = ({ Tab }: { Tab: React.ReactNode }) => { }; // Fetch dashboard data with date range and channel filters - const { data: dashboardData = [], loading: isLoading } = useRequest2( + const { data: dashboardData = [], loading: isLoading } = useRequest( async () => { const params = { channel: filterProps.channelId ? parseInt(filterProps.channelId) : undefined, diff --git a/projects/app/src/pageComponents/account/team/EditInfoModal.tsx b/projects/app/src/pageComponents/account/team/EditInfoModal.tsx index 0e0a0e95a1..04419c6e59 100644 --- a/projects/app/src/pageComponents/account/team/EditInfoModal.tsx +++ b/projects/app/src/pageComponents/account/team/EditInfoModal.tsx @@ -51,32 +51,37 @@ function EditModal({ const avatar = watch('avatar'); const notificationAccount = watch('notificationAccount'); - const { mutate: onclickCreate, isLoading: creating } = useRequest({ - mutationFn: async (data: CreateTeamProps) => { + const { runAsync: onclickCreate, loading: creating } = useRequest( + async (data: CreateTeamProps) => { return postCreateTeam(data); }, - onSuccess() { - onSuccess(); - onClose(); - }, - successToast: t('common:create_success'), - errorToast: t('common:create_failed') - }); - const { mutate: onclickUpdate, isLoading: updating } = useRequest({ - mutationFn: async (data: EditTeamFormDataType) => { + { + onSuccess() { + onSuccess(); + onClose(); + }, + successToast: t('common:create_success'), + errorToast: t('common:create_failed') + } + ); + + const { runAsync: onclickUpdate, loading: updating } = useRequest( + async (data: EditTeamFormDataType) => { if (!data.id) return Promise.resolve(''); return putUpdateTeam({ name: data.name, avatar: data.avatar }); }, - onSuccess() { - onSuccess(); - onClose(); - }, - successToast: t('common:update_success'), - errorToast: t('common:update_failed') - }); + { + onSuccess() { + onSuccess(); + onClose(); + }, + successToast: t('common:update_success'), + errorToast: t('common:update_failed') + } + ); const { isOpen: isOpenContact, onClose: onCloseContact, onOpen: onOpenContact } = useDisclosure(); diff --git a/projects/app/src/pageComponents/account/team/GroupManage/GroupInfoModal.tsx b/projects/app/src/pageComponents/account/team/GroupManage/GroupInfoModal.tsx index 3a81a39d0b..f51a138f48 100644 --- a/projects/app/src/pageComponents/account/team/GroupManage/GroupInfoModal.tsx +++ b/projects/app/src/pageComponents/account/team/GroupManage/GroupInfoModal.tsx @@ -4,7 +4,7 @@ import Avatar from '@fastgpt/web/components/common/Avatar'; import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; import { useTranslation } from 'next-i18next'; import React from 'react'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useForm } from 'react-hook-form'; import { postCreateGroup, putUpdateGroup } from '@/web/support/user/team/group/api'; import { DEFAULT_TEAM_AVATAR } from '@fastgpt/global/common/system/constants'; @@ -45,7 +45,7 @@ function GroupInfoModal({ } }); - const { runAsync: onCreate, loading: isLoadingCreate } = useRequest2( + const { runAsync: onCreate, loading: isLoadingCreate } = useRequest( (data: GroupFormType) => { return postCreateGroup({ name: data.name, @@ -57,7 +57,7 @@ function GroupInfoModal({ } ); - const { runAsync: onUpdate, loading: isLoadingUpdate } = useRequest2( + const { runAsync: onUpdate, loading: isLoadingUpdate } = useRequest( async (data: GroupFormType) => { if (!editGroup) return; return putUpdateGroup({ diff --git a/projects/app/src/pageComponents/account/team/GroupManage/GroupManageMember.tsx b/projects/app/src/pageComponents/account/team/GroupManage/GroupManageMember.tsx index 76b5ddf948..9505d2dbab 100644 --- a/projects/app/src/pageComponents/account/team/GroupManage/GroupManageMember.tsx +++ b/projects/app/src/pageComponents/account/team/GroupManage/GroupManageMember.tsx @@ -6,7 +6,7 @@ import Tag from '@fastgpt/web/components/common/Tag'; import { useTranslation } from 'next-i18next'; import React, { useEffect, useMemo, useState } from 'react'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { putUpdateGroup } from '@/web/support/user/team/group/api'; import type { GroupMemberRole } from '@fastgpt/global/support/permission/memberGroup/constant'; import { useUserStore } from '@/web/support/user/useUserStore'; @@ -96,7 +96,7 @@ function GroupEditModal({ const [hoveredMemberId, setHoveredMemberId] = useState(); - const { runAsync: onUpdate, loading: isLoadingUpdate } = useRequest2( + const { runAsync: onUpdate, loading: isLoadingUpdate } = useRequest( async () => { if (!group._id || !groupMembers.length) return; diff --git a/projects/app/src/pageComponents/account/team/GroupManage/GroupTransferOwnerModal.tsx b/projects/app/src/pageComponents/account/team/GroupManage/GroupTransferOwnerModal.tsx index d39bcde37b..1e13e329d3 100644 --- a/projects/app/src/pageComponents/account/team/GroupManage/GroupTransferOwnerModal.tsx +++ b/projects/app/src/pageComponents/account/team/GroupManage/GroupTransferOwnerModal.tsx @@ -13,7 +13,7 @@ import { import { type TeamMemberItemType } from '@fastgpt/global/support/user/team/type'; import Avatar from '@fastgpt/web/components/common/Avatar'; import MyModal from '@fastgpt/web/components/common/MyModal'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; import React, { useEffect, useState } from 'react'; import { TeamContext } from '../context'; @@ -69,7 +69,7 @@ export function ChangeOwnerModal({ const [keepAdmin, setKeepAdmin] = useState(true); - const { runAsync: onTransfer, loading } = useRequest2( + const { runAsync: onTransfer, loading } = useRequest( (tmbId: string) => putGroupChangeOwner(group._id, tmbId), { onSuccess: () => Promise.all([onClose(), onSuccess()]), diff --git a/projects/app/src/pageComponents/account/team/GroupManage/index.tsx b/projects/app/src/pageComponents/account/team/GroupManage/index.tsx index 2ff54d8a7e..c841352798 100644 --- a/projects/app/src/pageComponents/account/team/GroupManage/index.tsx +++ b/projects/app/src/pageComponents/account/team/GroupManage/index.tsx @@ -18,7 +18,7 @@ import MyBox from '@fastgpt/web/components/common/MyBox'; import MyMenu, { type MenuItemType } from '@fastgpt/web/components/common/MyMenu'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { useUserStore } from '@/web/support/user/useUserStore'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { deleteGroup, getGroupList } from '@/web/support/user/team/group/api'; import { DefaultGroupName } from '@fastgpt/global/support/user/team/group/constant'; import MemberTag from '../../../../components/support/user/team/Info/MemberTag'; @@ -40,7 +40,7 @@ function MemberTable({ Tabs }: { Tabs: React.ReactNode }) { data: groups = [], loading: isLoadingGroups, refresh: refetchGroups - } = useRequest2(() => getGroupList({ withMembers: true }), { + } = useRequest(() => getGroupList({ withMembers: true }), { manual: false, refreshDeps: [userInfo?.team?.teamId] }); @@ -61,7 +61,7 @@ function MemberTable({ Tabs }: { Tabs: React.ReactNode }) { type: 'delete', content: t('account_team:confirm_delete_group') }); - const { runAsync: delDeleteGroup } = useRequest2(deleteGroup, { + const { runAsync: delDeleteGroup } = useRequest(deleteGroup, { onSuccess: () => { refetchGroups(); } diff --git a/projects/app/src/pageComponents/account/team/Invite/CreateInvitationModal.tsx b/projects/app/src/pageComponents/account/team/Invite/CreateInvitationModal.tsx index 3a56bb9dd9..6347c9c781 100644 --- a/projects/app/src/pageComponents/account/team/Invite/CreateInvitationModal.tsx +++ b/projects/app/src/pageComponents/account/team/Invite/CreateInvitationModal.tsx @@ -18,7 +18,7 @@ import { import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; import MyModal from '@fastgpt/web/components/common/MyModal'; import MySelect from '@fastgpt/web/components/common/MySelect'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; import { useForm } from 'react-hook-form'; @@ -47,7 +47,7 @@ function CreateInvitationModal({ const expires = watch('expires'); const usedTimesLimit = watch('usedTimesLimit'); - const { runAsync: createInvitationLink, loading } = useRequest2(postCreateInvitationLink, { + const { runAsync: createInvitationLink, loading } = useRequest(postCreateInvitationLink, { manual: true, errorToast: t('common:create_failed'), onSuccess: (data) => { diff --git a/projects/app/src/pageComponents/account/team/Invite/HandleInviteModal.tsx b/projects/app/src/pageComponents/account/team/Invite/HandleInviteModal.tsx index cdeff1fc04..02673871c7 100644 --- a/projects/app/src/pageComponents/account/team/Invite/HandleInviteModal.tsx +++ b/projects/app/src/pageComponents/account/team/Invite/HandleInviteModal.tsx @@ -2,7 +2,7 @@ import { getInvitationInfo, postAcceptInvitationLink } from '@/web/support/user/ import { Box, Button, Flex, ModalBody, ModalCloseButton } from '@chakra-ui/react'; import Avatar from '@fastgpt/web/components/common/Avatar'; import MyModal from '@fastgpt/web/components/common/MyModal'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; import { useRouter } from 'next/router'; import { useContextSelector } from 'use-context-selector'; @@ -18,12 +18,12 @@ function Invite({ invitelinkid }: { invitelinkid: string }) { router.push('/account/team'); }; - const { data: invitationInfo } = useRequest2(() => getInvitationInfo(invitelinkid), { + const { data: invitationInfo } = useRequest(() => getInvitationInfo(invitelinkid), { manual: false, onError: onClose }); - const { runAsync: acceptInvitation, loading: accepting } = useRequest2( + const { runAsync: acceptInvitation, loading: accepting } = useRequest( () => postAcceptInvitationLink(invitelinkid), { manual: true, diff --git a/projects/app/src/pageComponents/account/team/Invite/InviteModal.tsx b/projects/app/src/pageComponents/account/team/Invite/InviteModal.tsx index acfccbd386..d94cda300a 100644 --- a/projects/app/src/pageComponents/account/team/Invite/InviteModal.tsx +++ b/projects/app/src/pageComponents/account/team/Invite/InviteModal.tsx @@ -27,7 +27,7 @@ import MyModal from '@fastgpt/web/components/common/MyModal'; import MyPopover from '@fastgpt/web/components/common/MyPopover'; import Tag from '@fastgpt/web/components/common/Tag'; import { useCopyData } from '@fastgpt/web/hooks/useCopyData'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import format from 'date-fns/format'; import { useTranslation } from 'next-i18next'; import dynamic from 'next/dynamic'; @@ -42,7 +42,7 @@ const InviteModal = ({ onClose }: { onClose: () => void }) => { data: invitationLinkList, loading: isLoadingLink, runAsync: refetchInvitationLinkList - } = useRequest2(() => getInvitationLinkList(), { + } = useRequest(() => getInvitationLinkList(), { manual: false }); @@ -71,7 +71,7 @@ const InviteModal = ({ onClose }: { onClose: () => void }) => { [copyData, feConfigs?.systemTitle, t, userInfo?.team.memberName, userInfo?.team.teamName] ); - const { runAsync: onForbid, loading: forbiding } = useRequest2(putForbidInvitationLink, { + const { runAsync: onForbid, loading: forbiding } = useRequest(putForbidInvitationLink, { manual: true, onSuccess: refetchInvitationLinkList, successToast: t('account_team:forbid_success') diff --git a/projects/app/src/pageComponents/account/team/MemberTable.tsx b/projects/app/src/pageComponents/account/team/MemberTable.tsx index 507683e0db..d6f31606b2 100644 --- a/projects/app/src/pageComponents/account/team/MemberTable.tsx +++ b/projects/app/src/pageComponents/account/team/MemberTable.tsx @@ -28,7 +28,7 @@ import { TeamContext } from './context'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import MyIcon from '@fastgpt/web/components/common/Icon'; import dynamic from 'next/dynamic'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { delLeaveTeam } from '@/web/support/user/team/api'; import { GetSearchUserGroupOrg, postSyncMembers } from '@/web/support/user/api'; import { @@ -123,13 +123,13 @@ function MemberTable({ Tabs }: { Tabs: React.ReactNode }) { const { isOpen: isOpenInvite, onOpen: onOpenInvite, onClose: onCloseInvite } = useDisclosure(); - const { runAsync: onSyncMember, loading: isSyncing } = useRequest2(postSyncMembers, { + const { runAsync: onSyncMember, loading: isSyncing } = useRequest(postSyncMembers, { onSuccess: onRefreshMembers, successToast: t('account_team:sync_member_success'), errorToast: t('account_team:sync_member_failed') }); - const { runAsync: onLeaveTeam } = useRequest2(delLeaveTeam, { + const { runAsync: onLeaveTeam } = useRequest(delLeaveTeam, { onSuccess() { const defaultTeam = myTeams[0]; onSwitchTeam(defaultTeam.teamId); @@ -137,11 +137,11 @@ function MemberTable({ Tabs }: { Tabs: React.ReactNode }) { errorToast: t('account_team:user_team_leave_team_failed') }); - const { runAsync: onRemoveMember } = useRequest2(delRemoveMember, { + const { runAsync: onRemoveMember } = useRequest(delRemoveMember, { onSuccess: onRefreshMembers }); - const { runAsync: onRestore } = useRequest2(postRestoreMember, { + const { runAsync: onRestore } = useRequest(postRestoreMember, { onSuccess: onRefreshMembers, successToast: t('common:Success'), errorToast: t('common:user.team.invite.Reject') diff --git a/projects/app/src/pageComponents/account/team/OrgManage/OrgInfoModal.tsx b/projects/app/src/pageComponents/account/team/OrgManage/OrgInfoModal.tsx index 62e7561791..1c673b81dd 100644 --- a/projects/app/src/pageComponents/account/team/OrgManage/OrgInfoModal.tsx +++ b/projects/app/src/pageComponents/account/team/OrgManage/OrgInfoModal.tsx @@ -6,7 +6,7 @@ import { useUploadAvatar } from '@fastgpt/web/common/file/hooks/useUploadAvatar' import Avatar from '@fastgpt/web/components/common/Avatar'; import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; import MyModal from '@fastgpt/web/components/common/MyModal'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; import { useForm } from 'react-hook-form'; @@ -52,7 +52,7 @@ function OrgInfoModal({ }); const avatar = watch('avatar'); - const { run: onCreate, loading: isLoadingCreate } = useRequest2( + const { run: onCreate, loading: isLoadingCreate } = useRequest( async (data: OrgFormType) => { if (parentId === undefined) return; return postCreateOrg({ @@ -71,7 +71,7 @@ function OrgInfoModal({ } ); - const { runAsync: onUpdate, loading: isLoadingUpdate } = useRequest2( + const { runAsync: onUpdate, loading: isLoadingUpdate } = useRequest( async (data: OrgFormType) => { if (!editOrg._id) return; return putUpdateOrg({ diff --git a/projects/app/src/pageComponents/account/team/OrgManage/OrgMemberManageModal.tsx b/projects/app/src/pageComponents/account/team/OrgManage/OrgMemberManageModal.tsx index 760934eb76..8de7d2838a 100644 --- a/projects/app/src/pageComponents/account/team/OrgManage/OrgMemberManageModal.tsx +++ b/projects/app/src/pageComponents/account/team/OrgManage/OrgMemberManageModal.tsx @@ -5,7 +5,7 @@ import Avatar from '@fastgpt/web/components/common/Avatar'; import MyIcon from '@fastgpt/web/components/common/Icon'; import SearchInput from '@fastgpt/web/components/common/Input/SearchInput'; import MyModal from '@fastgpt/web/components/common/MyModal'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; import { useEffect, useState } from 'react'; import { type OrgListItemType } from '@fastgpt/global/support/user/team/org/type'; @@ -69,7 +69,7 @@ function OrgMemberManageModal({ ); }, [orgMembers]); - const { run: onUpdate, loading: isLoadingUpdate } = useRequest2( + const { run: onUpdate, loading: isLoadingUpdate } = useRequest( () => { return putUpdateOrgMembers({ orgId: currentOrg._id, diff --git a/projects/app/src/pageComponents/account/team/OrgManage/OrgMoveModal.tsx b/projects/app/src/pageComponents/account/team/OrgManage/OrgMoveModal.tsx index e520610611..1f172dff3b 100644 --- a/projects/app/src/pageComponents/account/team/OrgManage/OrgMoveModal.tsx +++ b/projects/app/src/pageComponents/account/team/OrgManage/OrgMoveModal.tsx @@ -2,7 +2,7 @@ import { getOrgList, putMoveOrg } from '@/web/support/user/team/org/api'; import { Button, ModalBody, ModalFooter } from '@chakra-ui/react'; import type { OrgListItemType, OrgType } from '@fastgpt/global/support/user/team/org/type'; import MyModal from '@fastgpt/web/components/common/MyModal'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; import { useMemo, useState } from 'react'; import OrgTree from './OrgTree'; @@ -21,7 +21,7 @@ function OrgMoveModal({ const { t } = useTranslation(); const [selectedOrg, setSelectedOrg] = useState(); - const { runAsync: onMoveOrg, loading } = useRequest2(putMoveOrg, { + const { runAsync: onMoveOrg, loading } = useRequest(putMoveOrg, { onSuccess: () => { onClose(); onSuccess(); diff --git a/projects/app/src/pageComponents/account/team/OrgManage/OrgTree.tsx b/projects/app/src/pageComponents/account/team/OrgManage/OrgTree.tsx index c2cd060716..8271083ece 100644 --- a/projects/app/src/pageComponents/account/team/OrgManage/OrgTree.tsx +++ b/projects/app/src/pageComponents/account/team/OrgManage/OrgTree.tsx @@ -5,7 +5,7 @@ import { useToggle } from 'ahooks'; import { useState } from 'react'; import IconButton from './IconButton'; import { useUserStore } from '@/web/support/user/useUserStore'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getOrgList } from '@/web/support/user/team/org/api'; import { getChildrenByOrg } from '@fastgpt/service/support/permission/org/controllers'; import { getOrgChildrenPath } from '@fastgpt/global/support/user/team/org/constant'; @@ -25,7 +25,7 @@ function OrgTreeNode({ }) { const [isExpanded, toggleIsExpanded] = useToggle(index === 0); const [canBeExpanded, setCanBeExpanded] = useState(true); - const { data: orgs = [], runAsync: getOrgs } = useRequest2(() => + const { data: orgs = [], runAsync: getOrgs } = useRequest(() => getOrgList({ orgId: org._id, withPermission: false }) ); const onClickExpand = async () => { diff --git a/projects/app/src/pageComponents/account/team/OrgManage/index.tsx b/projects/app/src/pageComponents/account/team/OrgManage/index.tsx index 5963f96a03..86c43a8cd9 100644 --- a/projects/app/src/pageComponents/account/team/OrgManage/index.tsx +++ b/projects/app/src/pageComponents/account/team/OrgManage/index.tsx @@ -20,7 +20,7 @@ import MyIcon from '@fastgpt/web/components/common/Icon'; import type { IconNameType } from '@fastgpt/web/components/common/Icon/type'; import MyMenu from '@fastgpt/web/components/common/MyMenu'; import { useConfirm } from '@fastgpt/web/hooks/useConfirm'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; import { useMemo, useState } from 'react'; import MemberTag from '@/components/support/user/team/Info/MemberTag'; @@ -100,7 +100,7 @@ function OrgTable({ Tabs }: { Tabs: React.ReactNode }) { }); const deleteOrgHandler = (orgId: string) => openDeleteOrgModal({ onConfirm: () => deleteOrgReq(orgId) })(); - const { runAsync: deleteOrgReq } = useRequest2(deleteOrg, { + const { runAsync: deleteOrgReq } = useRequest(deleteOrg, { onSuccess: refresh }); @@ -115,11 +115,11 @@ function OrgTable({ Tabs }: { Tabs: React.ReactNode }) { type: 'delete' }); - const { runAsync: deleteMemberReq } = useRequest2(deleteOrgMember, { + const { runAsync: deleteMemberReq } = useRequest(deleteOrgMember, { onSuccess: refresh }); - const { runAsync: deleteMemberFromTeamReq } = useRequest2(delRemoveMember, { + const { runAsync: deleteMemberFromTeamReq } = useRequest(delRemoveMember, { onSuccess: refresh }); diff --git a/projects/app/src/pageComponents/account/team/PermissionManage/index.tsx b/projects/app/src/pageComponents/account/team/PermissionManage/index.tsx index 205415f35f..427b338925 100644 --- a/projects/app/src/pageComponents/account/team/PermissionManage/index.tsx +++ b/projects/app/src/pageComponents/account/team/PermissionManage/index.tsx @@ -15,7 +15,7 @@ import { Button } from '@chakra-ui/react'; import { useTranslation } from 'next-i18next'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { deleteMemberPermission, getTeamClbs, @@ -83,7 +83,7 @@ function PermissionManage({ const [searchKey, setSearchKey] = useState(''); - const { data: searchResult } = useRequest2(() => GetSearchUserGroupOrg(searchKey), { + const { data: searchResult } = useRequest(() => GetSearchUserGroupOrg(searchKey), { manual: false, throttleWait: 500, debounceWait: 200, @@ -114,7 +114,7 @@ function PermissionManage({ }; }, [collaboratorList, searchResult, searchKey]); - const { runAsync: onUpdatePermission, loading: addLoading } = useRequest2( + const { runAsync: onUpdatePermission, loading: addLoading } = useRequest( async ({ id, type, per }: { id: string; type: 'add' | 'remove'; per: PermissionValueType }) => { const clb = collaboratorList.find( (clb) => clb.tmbId === id || clb.groupId === id || clb.orgId === id @@ -141,7 +141,7 @@ function PermissionManage({ } ); - const { runAsync: onDeleteMemberPermission, loading: deleteLoading } = useRequest2( + const { runAsync: onDeleteMemberPermission, loading: deleteLoading } = useRequest( async (props) => { if (onDelOneCollaborator) { return await onDelOneCollaborator(props); diff --git a/projects/app/src/pageComponents/account/team/context.tsx b/projects/app/src/pageComponents/account/team/context.tsx index 5a330fcdb5..7d97b77b38 100644 --- a/projects/app/src/pageComponents/account/team/context.tsx +++ b/projects/app/src/pageComponents/account/team/context.tsx @@ -11,7 +11,7 @@ import { import { TeamMemberStatusEnum } from '@fastgpt/global/support/user/team/constant'; import { useUserStore } from '@/web/support/user/useUserStore'; import type { TeamTmbItemType, TeamMemberItemType } from '@fastgpt/global/support/user/team/type'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; import { useRouter } from 'next/router'; @@ -57,17 +57,17 @@ export const TeamModalContextProvider = ({ children }: { children: ReactNode }) data: myTeams = [], loading: isLoadingTeams, refresh: refetchTeams - } = useRequest2(() => getTeamList(TeamMemberStatusEnum.active), { + } = useRequest(() => getTeamList(TeamMemberStatusEnum.active), { manual: false, refreshDeps: [userInfo?._id] }); - const { data: teamMemberCountData, refresh: refetchTeamSize } = useRequest2(getTeamMemberCount, { + const { data: teamMemberCountData, refresh: refetchTeamSize } = useRequest(getTeamMemberCount, { manual: false, refreshDeps: [userInfo?.team?.teamId] }); - const { runAsync: onSwitchTeam, loading: isSwitchingTeam } = useRequest2( + const { runAsync: onSwitchTeam, loading: isSwitchingTeam } = useRequest( async (teamId: string) => { await putSwitchTeam(teamId); return initUserInfo(); diff --git a/projects/app/src/pageComponents/account/thirdParty/OpenAIAccountModal.tsx b/projects/app/src/pageComponents/account/thirdParty/OpenAIAccountModal.tsx index f9dae74615..90383effb3 100644 --- a/projects/app/src/pageComponents/account/thirdParty/OpenAIAccountModal.tsx +++ b/projects/app/src/pageComponents/account/thirdParty/OpenAIAccountModal.tsx @@ -3,7 +3,7 @@ import { ModalBody, Box, Flex, Input, ModalFooter, Button } from '@chakra-ui/rea import MyModal from '@fastgpt/web/components/common/MyModal'; import { useTranslation } from 'next-i18next'; import { useForm } from 'react-hook-form'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import type { OpenaiAccountType } from '@fastgpt/global/support/user/team/type'; import { useUserStore } from '@/web/support/user/useUserStore'; import { putUpdateTeam } from '@/web/support/user/team/api'; @@ -21,7 +21,7 @@ const OpenAIAccountModal = ({ defaultValues: defaultData }); - const { runAsync: onSubmit, loading } = useRequest2( + const { runAsync: onSubmit, loading } = useRequest( async (data: OpenaiAccountType) => { if (!userInfo?.team.teamId) return; return putUpdateTeam({ diff --git a/projects/app/src/pageComponents/account/thirdParty/WorkflowVariableModal.tsx b/projects/app/src/pageComponents/account/thirdParty/WorkflowVariableModal.tsx index 0387072e3c..965c783c02 100644 --- a/projects/app/src/pageComponents/account/thirdParty/WorkflowVariableModal.tsx +++ b/projects/app/src/pageComponents/account/thirdParty/WorkflowVariableModal.tsx @@ -6,7 +6,7 @@ import { useTranslation } from 'next-i18next'; import { useForm } from 'react-hook-form'; import { useUserStore } from '@/web/support/user/useUserStore'; import { putUpdateTeam } from '@/web/support/user/team/api'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; const WorkflowVariableModal = ({ defaultData, @@ -25,7 +25,7 @@ const WorkflowVariableModal = ({ } }); - const { runAsync: onSubmit, loading } = useRequest2( + const { runAsync: onSubmit, loading } = useRequest( async (data: { key: string; value: string }) => { if (!userInfo?.team.teamId) return; diff --git a/projects/app/src/pageComponents/account/usage/Dashboard.tsx b/projects/app/src/pageComponents/account/usage/Dashboard.tsx index a01bc4fa04..3d1a97faf5 100644 --- a/projects/app/src/pageComponents/account/usage/Dashboard.tsx +++ b/projects/app/src/pageComponents/account/usage/Dashboard.tsx @@ -1,7 +1,7 @@ import { getDashboardData } from '@/web/support/wallet/usage/api'; import { Box, Button, Flex, useDisclosure } from '@chakra-ui/react'; import MyBox from '@fastgpt/web/components/common/MyBox'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { addDays } from 'date-fns'; import React, { useMemo } from 'react'; import { type UsageFilterParams } from './type'; @@ -27,7 +27,7 @@ const UsageDashboard = ({ const { dateRange, selectTmbIds, usageSources, unit, isSelectAllSource, isSelectAllTmb } = filterParams; - const { data: totalPoints = [], loading: totalPointsLoading } = useRequest2( + const { data: totalPoints = [], loading: totalPointsLoading } = useRequest( () => getDashboardData({ dateStart: dateRange.from diff --git a/projects/app/src/pageComponents/account/usage/UsageTable.tsx b/projects/app/src/pageComponents/account/usage/UsageTable.tsx index dc9e5928b3..515cd4a9e7 100644 --- a/projects/app/src/pageComponents/account/usage/UsageTable.tsx +++ b/projects/app/src/pageComponents/account/usage/UsageTable.tsx @@ -25,7 +25,7 @@ import { addDays } from 'date-fns'; import dynamic from 'next/dynamic'; import { type UsageFilterParams } from './type'; import PopoverConfirm from '@fastgpt/web/components/common/MyPopover/PopoverConfirm'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { downloadFetch } from '@/web/common/system/utils'; import { useSafeTranslation } from '@fastgpt/web/hooks/useSafeTranslation'; @@ -83,7 +83,7 @@ const UsageTableList = ({ const [usageDetail, setUsageDetail] = useState(); - const { runAsync: exportUsage } = useRequest2( + const { runAsync: exportUsage } = useRequest( async () => { await downloadFetch({ url: `/api/proApi/support/wallet/usage/exportUsage`, diff --git a/projects/app/src/pageComponents/app/detail/HTTPTools/ChatTest.tsx b/projects/app/src/pageComponents/app/detail/HTTPTools/ChatTest.tsx index 6052c93a96..a6fa073315 100644 --- a/projects/app/src/pageComponents/app/detail/HTTPTools/ChatTest.tsx +++ b/projects/app/src/pageComponents/app/detail/HTTPTools/ChatTest.tsx @@ -9,7 +9,7 @@ import { cardStyles } from '../constants'; import { useTranslation } from 'next-i18next'; import { type HttpToolConfigType } from '@fastgpt/global/core/app/type'; import { useForm } from 'react-hook-form'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import Markdown from '@/components/Markdown'; import { postRunHTTPTool } from '@/web/core/app/api/tool'; import { type StoreSecretValueType } from '@fastgpt/global/common/secret/type'; @@ -50,7 +50,7 @@ const ChatTest = ({ setOutput(''); }, [currentTool, reset]); - const { runAsync: runTool, loading: isRunning } = useRequest2( + const { runAsync: runTool, loading: isRunning } = useRequest( async (data: Record) => { if (!currentTool) return; return postRunHTTPTool({ diff --git a/projects/app/src/pageComponents/app/detail/HTTPTools/EditForm.tsx b/projects/app/src/pageComponents/app/detail/HTTPTools/EditForm.tsx index 11fba5e9e4..5680be15d3 100644 --- a/projects/app/src/pageComponents/app/detail/HTTPTools/EditForm.tsx +++ b/projects/app/src/pageComponents/app/detail/HTTPTools/EditForm.tsx @@ -12,7 +12,7 @@ import React, { useState } from 'react'; import MyIcon from '@fastgpt/web/components/common/Icon'; import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; import { useTranslation } from 'next-i18next'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { AppContext } from '../context'; import { useContextSelector } from 'use-context-selector'; import MyIconButton from '@fastgpt/web/components/common/Icon/button'; @@ -60,7 +60,7 @@ const EditForm = ({ onClose: onCloseConfigModal } = useDisclosure(); - const { runAsync: runDeleteHttpTool, loading: isDeletingTool } = useRequest2( + const { runAsync: runDeleteHttpTool, loading: isDeletingTool } = useRequest( async (updatedToolList: HttpToolConfigType[]) => await putUpdateHttpPlugin({ appId: appDetail._id, @@ -327,7 +327,7 @@ const ToolDetailModal = ({ return initial; }); - const { runAsync: runUpdateHttpPlugin, loading: isUpdating } = useRequest2( + const { runAsync: runUpdateHttpPlugin, loading: isUpdating } = useRequest( async (data: UpdateHttpPluginBody) => await putUpdateHttpPlugin(data), { manual: true, diff --git a/projects/app/src/pageComponents/app/detail/HTTPTools/Header.tsx b/projects/app/src/pageComponents/app/detail/HTTPTools/Header.tsx index 6ff687ed09..6b200f2cb7 100644 --- a/projects/app/src/pageComponents/app/detail/HTTPTools/Header.tsx +++ b/projects/app/src/pageComponents/app/detail/HTTPTools/Header.tsx @@ -1,7 +1,7 @@ import { Box, Flex } from '@chakra-ui/react'; import FolderPath from '@/components/common/folder/Path'; import { useTranslation } from 'next-i18next'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useContextSelector } from 'use-context-selector'; import { AppContext } from '../context'; import { getAppFolderPath } from '@/web/core/app/api/app'; @@ -16,7 +16,7 @@ const Header = () => { const { lastAppListRouteType } = useSystemStore(); - const { data: paths = [] } = useRequest2( + const { data: paths = [] } = useRequest( () => getAppFolderPath({ sourceId: appId, type: 'parent' }), { manual: false, diff --git a/projects/app/src/pageComponents/app/detail/HTTPTools/ManualToolModal.tsx b/projects/app/src/pageComponents/app/detail/HTTPTools/ManualToolModal.tsx index 89f7bf5834..eb5636f63d 100644 --- a/projects/app/src/pageComponents/app/detail/HTTPTools/ManualToolModal.tsx +++ b/projects/app/src/pageComponents/app/detail/HTTPTools/ManualToolModal.tsx @@ -25,7 +25,7 @@ import { AccordionIcon } from '@chakra-ui/react'; import { useForm } from 'react-hook-form'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useContextSelector } from 'use-context-selector'; import { AppContext } from '../context'; import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; @@ -148,7 +148,7 @@ const ManualToolModal = ({ onClose: onCloseCurlImport } = useDisclosure(); - const { runAsync: onSubmit, loading: isSubmitting } = useRequest2( + const { runAsync: onSubmit, loading: isSubmitting } = useRequest( async (data: ManualToolFormType) => { if (bodyType === ContentTypes.json && bodyContent) { try { diff --git a/projects/app/src/pageComponents/app/detail/HTTPTools/SchemaConfigModal.tsx b/projects/app/src/pageComponents/app/detail/HTTPTools/SchemaConfigModal.tsx index 1d93bcd7bf..e0776d77b7 100644 --- a/projects/app/src/pageComponents/app/detail/HTTPTools/SchemaConfigModal.tsx +++ b/projects/app/src/pageComponents/app/detail/HTTPTools/SchemaConfigModal.tsx @@ -18,7 +18,7 @@ import { Tr } from '@chakra-ui/react'; import { useToast } from '@fastgpt/web/hooks/useToast'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getApiSchemaByUrl, putUpdateHttpPlugin } from '@/web/core/app/api/tool'; import { useForm } from 'react-hook-form'; import { useContextSelector } from 'use-context-selector'; @@ -88,7 +88,7 @@ const SchemaConfigModal = ({ onClose }: { onClose: () => void }) => { const headerSecret = watch('headerSecret'); const apiSchemaStr = watch('apiSchemaStr'); - const { runAsync: onClickUrlLoadApi, loading: isLoadingUrlApi } = useRequest2( + const { runAsync: onClickUrlLoadApi, loading: isLoadingUrlApi } = useRequest( async () => { if (!schemaUrl || (!schemaUrl.startsWith('https://') && !schemaUrl.startsWith('http://'))) { return toast({ @@ -105,7 +105,7 @@ const SchemaConfigModal = ({ onClose }: { onClose: () => void }) => { errorToast: t('common:plugin.Invalid Schema') } ); - const { runAsync: onUpdateHttpTool, loading: isUpdatingHttpTool } = useRequest2( + const { runAsync: onUpdateHttpTool, loading: isUpdatingHttpTool } = useRequest( async (data: HttpToolsType) => { const apiData = await str2OpenApiSchema(data.apiSchemaStr || ''); const toolList = await pathData2ToolList(apiData.pathData); diff --git a/projects/app/src/pageComponents/app/detail/InfoModal.tsx b/projects/app/src/pageComponents/app/detail/InfoModal.tsx index 82deaa627c..b42704b93a 100644 --- a/projects/app/src/pageComponents/app/detail/InfoModal.tsx +++ b/projects/app/src/pageComponents/app/detail/InfoModal.tsx @@ -23,7 +23,7 @@ import { AppRoleList } from '@fastgpt/global/support/permission/app/constant'; import Avatar from '@fastgpt/web/components/common/Avatar'; import MyIcon from '@fastgpt/web/components/common/Icon'; import MyModal from '@fastgpt/web/components/common/MyModal'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useToast } from '@fastgpt/web/hooks/useToast'; import { useTranslation } from 'next-i18next'; import React, { useCallback } from 'react'; @@ -55,7 +55,7 @@ const InfoModal = ({ onClose }: { onClose: () => void }) => { const avatar = watch('avatar'); // submit config - const { runAsync: saveSubmitSuccess, loading: btnLoading } = useRequest2( + const { runAsync: saveSubmitSuccess, loading: btnLoading } = useRequest( async (data: AppSchema) => { await updateAppDetail({ name: data.name, @@ -105,7 +105,7 @@ const InfoModal = ({ onClose }: { onClose: () => void }) => { ...props }); - const { runAsync: resumeInheritPermission } = useRequest2(() => resumeInheritPer(appDetail._id), { + const { runAsync: resumeInheritPermission } = useRequest(() => resumeInheritPer(appDetail._id), { errorToast: t('common:resume_failed'), onSuccess: () => { reloadApp(); diff --git a/projects/app/src/pageComponents/app/detail/Logs/DetailLogsModal.tsx b/projects/app/src/pageComponents/app/detail/Logs/DetailLogsModal.tsx index 80f18fe35b..17dd4c57de 100644 --- a/projects/app/src/pageComponents/app/detail/Logs/DetailLogsModal.tsx +++ b/projects/app/src/pageComponents/app/detail/Logs/DetailLogsModal.tsx @@ -17,7 +17,7 @@ import ChatItemContextProvider, { ChatItemContext } from '@/web/core/chat/contex import ChatRecordContextProvider, { ChatRecordContext } from '@/web/core/chat/context/chatRecordContext'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useContextSelector } from 'use-context-selector'; import ChatQuoteList from '@/pageComponents/chat/ChatQuoteList'; import { ChatTypeEnum } from '@/components/core/chat/ChatContainer/ChatBox/constants'; @@ -60,7 +60,7 @@ const DetailLogsModal = ({ const chatRecords = useContextSelector(ChatRecordContext, (v) => v.chatRecords); const totalRecordsCount = useContextSelector(ChatRecordContext, (v) => v.totalRecordsCount); - const { data: chat } = useRequest2( + const { data: chat } = useRequest( async () => { const res = await getInitChatInfo({ appId, chatId, loadCustomFeedbacks: true }); res.userAvatar = HUMAN_ICON; diff --git a/projects/app/src/pageComponents/app/detail/Logs/FeedbackTypeFilter.tsx b/projects/app/src/pageComponents/app/detail/Logs/FeedbackTypeFilter.tsx index 78cbc7b701..5022fa611b 100644 --- a/projects/app/src/pageComponents/app/detail/Logs/FeedbackTypeFilter.tsx +++ b/projects/app/src/pageComponents/app/detail/Logs/FeedbackTypeFilter.tsx @@ -14,7 +14,7 @@ import { } from '@chakra-ui/react'; import { useTranslation } from 'next-i18next'; import MyIcon from '@fastgpt/web/components/common/Icon'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getFeedbackRecordIds } from '@/web/core/chat/feedback/api'; import { eventBus, EventNameEnum } from '@/web/common/utils/eventbus'; @@ -194,7 +194,7 @@ export const DetailLogsModalFeedbackTypeFilter = ({ const { t } = useTranslation(); // Get feedback record IDs when in feedback mode - const { data: feedbackRecords, runAsync: loadFeedbackRecords } = useRequest2( + const { data: feedbackRecords, runAsync: loadFeedbackRecords } = useRequest( async (_feedbackType = feedbackType, _unreadOnly = unreadOnly) => { if (!appId || !chatId || _feedbackType === 'all') return null; return await getFeedbackRecordIds({ diff --git a/projects/app/src/pageComponents/app/detail/Logs/LogChart.tsx b/projects/app/src/pageComponents/app/detail/Logs/LogChart.tsx index e3188860b7..76c0b6b7ea 100644 --- a/projects/app/src/pageComponents/app/detail/Logs/LogChart.tsx +++ b/projects/app/src/pageComponents/app/detail/Logs/LogChart.tsx @@ -17,7 +17,7 @@ import React, { useMemo, useState } from 'react'; import { useTranslation } from 'next-i18next'; import { AppContext } from '../context'; import { useContextSelector } from 'use-context-selector'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getAppChartData, getAppTotalData } from '@/web/core/app/api/log'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { @@ -152,7 +152,7 @@ const LogChart = ({ const [offset, setOffset] = useState(offsetOptions[0].value); - const { data: chartData, loading } = useRequest2( + const { data: chartData, loading } = useRequest( async () => { return getAppChartData({ appId, @@ -840,7 +840,7 @@ const TotalData = ({ appId }: { appId: string }) => { totalChats: 0, totalPoints: 0 } - } = useRequest2( + } = useRequest( async () => { if (feConfigs?.isPlus) { return await getAppTotalData({ appId }); diff --git a/projects/app/src/pageComponents/app/detail/Logs/LogTable.tsx b/projects/app/src/pageComponents/app/detail/Logs/LogTable.tsx index 11457d0650..ec9dc4b43b 100644 --- a/projects/app/src/pageComponents/app/detail/Logs/LogTable.tsx +++ b/projects/app/src/pageComponents/app/detail/Logs/LogTable.tsx @@ -27,7 +27,7 @@ import Avatar from '@fastgpt/web/components/common/Avatar'; import { useLocalStorageState } from 'ahooks'; import { getLogKeys } from '@/web/core/app/api/log'; import type { AppLogKeysType } from '@fastgpt/global/core/app/logs/type'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { AppLogKeysEnum, AppLogKeysEnumMap, @@ -128,7 +128,7 @@ const LogTable = ({ const [logKeys = DefaultAppLogKeys, setLogKeys] = useLocalStorageState( `app_log_keys_${appId}` ); - const { runAsync: fetchLogKeys, data: teamLogKeys } = useRequest2( + const { runAsync: fetchLogKeys, data: teamLogKeys } = useRequest( async () => { return getLogKeys({ appId }); }, @@ -153,7 +153,7 @@ const LogTable = ({ return !isEqual(teamLogKeysList, personalLogKeysList); }, [teamLogKeys, logKeys]); - const { runAsync: exportLogs } = useRequest2(async () => { + const { runAsync: exportLogs } = useRequest(async () => { const enabledKeys = logKeys.filter((item) => item.enable).map((item) => item.key); const headerTitle = enabledKeys.map((k) => t(AppLogKeysEnumMap[k])).join(','); await downloadFetch({ @@ -237,7 +237,7 @@ const LogTable = ({ type: 'delete' }); - const { runAsync: handleDelete } = useRequest2( + const { runAsync: handleDelete } = useRequest( async (chatIds: string[]) => { await batchDeleteChatHistories({ appId, chatIds }); await getData(pageNum); diff --git a/projects/app/src/pageComponents/app/detail/Logs/SyncLogKeysPopover.tsx b/projects/app/src/pageComponents/app/detail/Logs/SyncLogKeysPopover.tsx index 7c3872872d..2235fd9831 100644 --- a/projects/app/src/pageComponents/app/detail/Logs/SyncLogKeysPopover.tsx +++ b/projects/app/src/pageComponents/app/detail/Logs/SyncLogKeysPopover.tsx @@ -3,7 +3,7 @@ import { Box, Button, Flex } from '@chakra-ui/react'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { useTranslation } from 'next-i18next'; import React from 'react'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { updateLogKeys } from '@/web/core/app/api/log'; import type { AppLogKeysType } from '@fastgpt/global/core/app/logs/type'; import type { @@ -27,7 +27,7 @@ const SyncLogKeysPopover = ({ }) => { const { t } = useTranslation(); - const { runAsync: updateList, loading: updateLoading } = useRequest2( + const { runAsync: updateList, loading: updateLoading } = useRequest( async (data: updateLogKeysBody) => { await updateLogKeys(data); }, diff --git a/projects/app/src/pageComponents/app/detail/MCPTools/ChatTest.tsx b/projects/app/src/pageComponents/app/detail/MCPTools/ChatTest.tsx index 6ef9ba137a..2810d0292c 100644 --- a/projects/app/src/pageComponents/app/detail/MCPTools/ChatTest.tsx +++ b/projects/app/src/pageComponents/app/detail/MCPTools/ChatTest.tsx @@ -9,7 +9,7 @@ import { cardStyles } from '../constants'; import { useTranslation } from 'next-i18next'; import { type McpToolConfigType } from '@fastgpt/global/core/app/tool/mcpTool/type'; import { useForm } from 'react-hook-form'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import Markdown from '@/components/Markdown'; import { postRunMCPTool } from '@/web/core/app/api/tool'; import { type StoreSecretValueType } from '@fastgpt/global/common/secret/type'; @@ -41,7 +41,7 @@ const ChatTest = ({ setOutput(''); }, [currentTool, reset]); - const { runAsync: runTool, loading: isRunning } = useRequest2( + const { runAsync: runTool, loading: isRunning } = useRequest( async (data: Record) => { if (!currentTool) return; diff --git a/projects/app/src/pageComponents/app/detail/MCPTools/EditForm.tsx b/projects/app/src/pageComponents/app/detail/MCPTools/EditForm.tsx index 2bf63f695c..e9452d4bbb 100644 --- a/projects/app/src/pageComponents/app/detail/MCPTools/EditForm.tsx +++ b/projects/app/src/pageComponents/app/detail/MCPTools/EditForm.tsx @@ -3,7 +3,7 @@ import React, { useState } from 'react'; import MyIcon from '@fastgpt/web/components/common/Icon'; import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; import { useTranslation } from 'next-i18next'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { AppContext } from '../context'; import { useContextSelector } from 'use-context-selector'; import MyIconButton from '@fastgpt/web/components/common/Icon/button'; @@ -39,7 +39,7 @@ const EditForm = ({ const [toolDetail, setToolDetail] = useState(null); - const { runAsync: runGetMCPTools, loading: isGettingTools } = useRequest2( + const { runAsync: runGetMCPTools, loading: isGettingTools } = useRequest( async (data: getMCPToolsBody) => await getMCPTools(data), { onSuccess: (res) => { diff --git a/projects/app/src/pageComponents/app/detail/MCPTools/Header.tsx b/projects/app/src/pageComponents/app/detail/MCPTools/Header.tsx index 3c412b69e8..2efbca1b02 100644 --- a/projects/app/src/pageComponents/app/detail/MCPTools/Header.tsx +++ b/projects/app/src/pageComponents/app/detail/MCPTools/Header.tsx @@ -1,7 +1,7 @@ import { Box, Button, Flex } from '@chakra-ui/react'; import FolderPath from '@/components/common/folder/Path'; import { useTranslation } from 'next-i18next'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useContextSelector } from 'use-context-selector'; import { AppContext } from '../context'; import { getAppFolderPath } from '@/web/core/app/api/app'; @@ -27,7 +27,7 @@ const Header = ({ const { lastAppListRouteType } = useSystemStore(); - const { data: paths = [] } = useRequest2( + const { data: paths = [] } = useRequest( () => getAppFolderPath({ sourceId: appId, type: 'parent' }), { manual: false, @@ -48,7 +48,7 @@ const Header = ({ [router, lastAppListRouteType] ); - const { runAsync: saveMCPTools, loading: isSavingMCPTools } = useRequest2( + const { runAsync: saveMCPTools, loading: isSavingMCPTools } = useRequest( async () => { return await postUpdateMCPTools({ appId, url, toolList, headerSecret }); }, diff --git a/projects/app/src/pageComponents/app/detail/Plugin/Header.tsx b/projects/app/src/pageComponents/app/detail/Plugin/Header.tsx index 62f8cfcd37..1380e98484 100644 --- a/projects/app/src/pageComponents/app/detail/Plugin/Header.tsx +++ b/projects/app/src/pageComponents/app/detail/Plugin/Header.tsx @@ -19,7 +19,7 @@ import { useRouter } from 'next/router'; import AppCard from '../WorkflowComponents/AppCard'; import { useSystem } from '@fastgpt/web/hooks/useSystem'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import MyModal from '@fastgpt/web/components/common/MyModal'; import { formatTime2YMDHMS } from '@fastgpt/global/common/string/time'; import { useToast } from '@fastgpt/web/hooks/useToast'; @@ -75,7 +75,7 @@ const Header = () => { const { lastAppListRouteType } = useSystemStore(); - const { runAsync: onClickSave, loading } = useRequest2( + const { runAsync: onClickSave, loading } = useRequest( async ({ isPublish, versionName = formatTime2YMDHMS(new Date()) diff --git a/projects/app/src/pageComponents/app/detail/Publish/DingTalk/DingTalkEditModal.tsx b/projects/app/src/pageComponents/app/detail/Publish/DingTalk/DingTalkEditModal.tsx index 2bdc4bb8fe..64181bf6b5 100644 --- a/projects/app/src/pageComponents/app/detail/Publish/DingTalk/DingTalkEditModal.tsx +++ b/projects/app/src/pageComponents/app/detail/Publish/DingTalk/DingTalkEditModal.tsx @@ -6,7 +6,7 @@ import type { DingtalkAppType, OutLinkEditType } from '@fastgpt/global/support/o import { useTranslation } from 'next-i18next'; import { useForm } from 'react-hook-form'; import { createShareChat, updateShareChat } from '@/web/support/outLink/api'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import BasicInfo from '../components/BasicInfo'; import { getDocPath } from '@/web/common/system/doc'; import { useSystemStore } from '@/web/common/system/useSystemStore'; @@ -37,7 +37,7 @@ const DingTalkEditModal = ({ defaultValues: defaultData }); - const { runAsync: onclickCreate, loading: creating } = useRequest2( + const { runAsync: onclickCreate, loading: creating } = useRequest( (e: Omit, 'appId' | 'type'>) => createShareChat({ ...e, @@ -55,7 +55,7 @@ const DingTalkEditModal = ({ } ); - const { runAsync: onclickUpdate, loading: updating } = useRequest2( + const { runAsync: onclickUpdate, loading: updating } = useRequest( (e) => updateShareChat({ ...e, diff --git a/projects/app/src/pageComponents/app/detail/Publish/DingTalk/index.tsx b/projects/app/src/pageComponents/app/detail/Publish/DingTalk/index.tsx index 65acf43f31..0a7473a9ca 100644 --- a/projects/app/src/pageComponents/app/detail/Publish/DingTalk/index.tsx +++ b/projects/app/src/pageComponents/app/detail/Publish/DingTalk/index.tsx @@ -27,7 +27,7 @@ import dayjs from 'dayjs'; import dynamic from 'next/dynamic'; import MyMenu from '@fastgpt/web/components/common/MyMenu'; import EmptyTip from '@fastgpt/web/components/common/EmptyTip'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getDocPath } from '@/web/common/system/doc'; const DingTalkEditModal = dynamic(() => import('./DingTalkEditModal')); @@ -50,7 +50,7 @@ const DingTalk = ({ appId }: { appId: string }) => { data: shareChatList = [], loading: isFetching, runAsync: refetchShareChatList - } = useRequest2( + } = useRequest( () => getShareChatList({ appId, type: PublishChannelEnum.dingtalk }), { manual: false diff --git a/projects/app/src/pageComponents/app/detail/Publish/FeiShu/FeiShuEditModal.tsx b/projects/app/src/pageComponents/app/detail/Publish/FeiShu/FeiShuEditModal.tsx index 20b29949e3..9d1c61afc5 100644 --- a/projects/app/src/pageComponents/app/detail/Publish/FeiShu/FeiShuEditModal.tsx +++ b/projects/app/src/pageComponents/app/detail/Publish/FeiShu/FeiShuEditModal.tsx @@ -6,7 +6,7 @@ import type { FeishuAppType, OutLinkEditType } from '@fastgpt/global/support/out import { useTranslation } from 'next-i18next'; import { useForm } from 'react-hook-form'; import { createShareChat, updateShareChat } from '@/web/support/outLink/api'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import BasicInfo from '../components/BasicInfo'; import { getDocPath } from '@/web/common/system/doc'; import { useSystemStore } from '@/web/common/system/useSystemStore'; @@ -37,7 +37,7 @@ const FeiShuEditModal = ({ defaultValues: defaultData }); - const { runAsync: onclickCreate, loading: creating } = useRequest2( + const { runAsync: onclickCreate, loading: creating } = useRequest( (e: Omit, 'appId' | 'type'>) => createShareChat({ ...e, @@ -56,7 +56,7 @@ const FeiShuEditModal = ({ } ); - const { runAsync: onclickUpdate, loading: updating } = useRequest2( + const { runAsync: onclickUpdate, loading: updating } = useRequest( (e) => updateShareChat({ ...e, diff --git a/projects/app/src/pageComponents/app/detail/Publish/FeiShu/index.tsx b/projects/app/src/pageComponents/app/detail/Publish/FeiShu/index.tsx index 5cb2687aff..3b83fc82bb 100644 --- a/projects/app/src/pageComponents/app/detail/Publish/FeiShu/index.tsx +++ b/projects/app/src/pageComponents/app/detail/Publish/FeiShu/index.tsx @@ -27,7 +27,7 @@ import dayjs from 'dayjs'; import dynamic from 'next/dynamic'; import MyMenu from '@fastgpt/web/components/common/MyMenu'; import EmptyTip from '@fastgpt/web/components/common/EmptyTip'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getDocPath } from '@/web/common/system/doc'; const FeiShuEditModal = dynamic(() => import('./FeiShuEditModal')); @@ -49,7 +49,7 @@ const FeiShu = ({ appId }: { appId: string }) => { data: shareChatList = [], loading: isFetching, runAsync: refetchShareChatList - } = useRequest2( + } = useRequest( () => getShareChatList({ appId, type: PublishChannelEnum.feishu }), { manual: false diff --git a/projects/app/src/pageComponents/app/detail/Publish/Link/index.tsx b/projects/app/src/pageComponents/app/detail/Publish/Link/index.tsx index 8f7cc99272..9b2252c080 100644 --- a/projects/app/src/pageComponents/app/detail/Publish/Link/index.tsx +++ b/projects/app/src/pageComponents/app/detail/Publish/Link/index.tsx @@ -46,7 +46,7 @@ import QuestionTip from '@fastgpt/web/components/common/MyTooltip/QuestionTip'; import EmptyTip from '@fastgpt/web/components/common/EmptyTip'; import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; import MyBox from '@fastgpt/web/components/common/MyBox'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; const SelectUsingWayModal = dynamic(() => import('./SelectUsingWayModal')); @@ -287,7 +287,7 @@ function EditLinkModal({ const isEdit = useMemo(() => !!defaultData._id, [defaultData]); - const { runAsync: onclickCreate, loading: creating } = useRequest2( + const { runAsync: onclickCreate, loading: creating } = useRequest( async (e: OutLinkEditType) => createShareChat({ ...e, @@ -299,7 +299,7 @@ function EditLinkModal({ onSuccess: onCreate } ); - const { runAsync: onclickUpdate, loading: updating } = useRequest2(putShareChat, { + const { runAsync: onclickUpdate, loading: updating } = useRequest(putShareChat, { errorToast: t('common:update_failed'), onSuccess: onEdit }); diff --git a/projects/app/src/pageComponents/app/detail/Publish/OffiAccount/OffiAccountEditModal.tsx b/projects/app/src/pageComponents/app/detail/Publish/OffiAccount/OffiAccountEditModal.tsx index 76d44b3e6b..b189eaa8d3 100644 --- a/projects/app/src/pageComponents/app/detail/Publish/OffiAccount/OffiAccountEditModal.tsx +++ b/projects/app/src/pageComponents/app/detail/Publish/OffiAccount/OffiAccountEditModal.tsx @@ -6,7 +6,7 @@ import type { OffiAccountAppType, OutLinkEditType } from '@fastgpt/global/suppor import { useTranslation } from 'next-i18next'; import { useForm } from 'react-hook-form'; import { createShareChat, updateShareChat } from '@/web/support/outLink/api'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import BasicInfo from '../components/BasicInfo'; import { getDocPath } from '@/web/common/system/doc'; import { useSystemStore } from '@/web/common/system/useSystemStore'; @@ -37,7 +37,7 @@ const OffiAccountEditModal = ({ defaultValues: defaultData }); - const { runAsync: onclickCreate, loading: creating } = useRequest2( + const { runAsync: onclickCreate, loading: creating } = useRequest( (e: OutLinkEditType) => { if (e?.app) { e.app.appId = e.app.appId?.trim(); @@ -58,7 +58,7 @@ const OffiAccountEditModal = ({ } ); - const { runAsync: onclickUpdate, loading: updating } = useRequest2( + const { runAsync: onclickUpdate, loading: updating } = useRequest( (e) => { if (e?.app) { e.app.appId = e.app.appId?.trim(); diff --git a/projects/app/src/pageComponents/app/detail/Publish/OffiAccount/index.tsx b/projects/app/src/pageComponents/app/detail/Publish/OffiAccount/index.tsx index 08c4581150..a5d91a0591 100644 --- a/projects/app/src/pageComponents/app/detail/Publish/OffiAccount/index.tsx +++ b/projects/app/src/pageComponents/app/detail/Publish/OffiAccount/index.tsx @@ -27,7 +27,7 @@ import dayjs from 'dayjs'; import dynamic from 'next/dynamic'; import MyMenu from '@fastgpt/web/components/common/MyMenu'; import EmptyTip from '@fastgpt/web/components/common/EmptyTip'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getDocPath } from '@/web/common/system/doc'; const OffiAccountEditModal = dynamic(() => import('./OffiAccountEditModal')); @@ -50,7 +50,7 @@ const OffiAccount = ({ appId }: { appId: string }) => { data: shareChatList = [], loading: isFetching, runAsync: refetchShareChatList - } = useRequest2( + } = useRequest( () => getShareChatList({ appId, type: PublishChannelEnum.officialAccount }), { manual: false diff --git a/projects/app/src/pageComponents/app/detail/Publish/Playground/index.tsx b/projects/app/src/pageComponents/app/detail/Publish/Playground/index.tsx index b59464fc8f..7e42c493ab 100644 --- a/projects/app/src/pageComponents/app/detail/Publish/Playground/index.tsx +++ b/projects/app/src/pageComponents/app/detail/Publish/Playground/index.tsx @@ -4,7 +4,7 @@ import { useTranslation } from 'next-i18next'; import { useForm } from 'react-hook-form'; import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; import QuestionTip from '@fastgpt/web/components/common/MyTooltip/QuestionTip'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getPlaygroundVisibilityConfig, updatePlaygroundVisibilityConfig @@ -43,7 +43,7 @@ const PlaygroundVisibilityConfig = ({ appId }: { appId: string }) => { return ''; }, [appId]); - useRequest2(() => getPlaygroundVisibilityConfig({ appId }), { + useRequest(() => getPlaygroundVisibilityConfig({ appId }), { onSuccess: (data) => { reset({ showRunningStatus: data.showRunningStatus, @@ -56,7 +56,7 @@ const PlaygroundVisibilityConfig = ({ appId }: { appId: string }) => { manual: false }); - const { runAsync: saveConfig } = useRequest2( + const { runAsync: saveConfig } = useRequest( async (data: PlaygroundVisibilityConfigType) => { return await updatePlaygroundVisibilityConfig({ appId, diff --git a/projects/app/src/pageComponents/app/detail/Publish/Wecom/WecomEditModal.tsx b/projects/app/src/pageComponents/app/detail/Publish/Wecom/WecomEditModal.tsx index 340bfc8123..14a893193d 100644 --- a/projects/app/src/pageComponents/app/detail/Publish/Wecom/WecomEditModal.tsx +++ b/projects/app/src/pageComponents/app/detail/Publish/Wecom/WecomEditModal.tsx @@ -6,7 +6,7 @@ import type { WecomAppType, OutLinkEditType } from '@fastgpt/global/support/outL import { useTranslation } from 'next-i18next'; import { useForm } from 'react-hook-form'; import { createShareChat, updateShareChat } from '@/web/support/outLink/api'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getDocPath } from '@/web/common/system/doc'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import MyIcon from '@fastgpt/web/components/common/Icon'; @@ -45,7 +45,7 @@ const WecomEditModal = ({ runAsync: onclickCreate, loading: creating, data: createShareId - } = useRequest2( + } = useRequest( (e) => createShareChat({ ...e, @@ -68,7 +68,7 @@ const WecomEditModal = ({ runAsync: onclickUpdate, loading: updating, data: updatedShareId - } = useRequest2((e) => updateShareChat(e), { + } = useRequest((e) => updateShareChat(e), { errorToast: t('common:update_failed'), successToast: t('common:update_success'), onSuccess: onEdit diff --git a/projects/app/src/pageComponents/app/detail/Publish/Wecom/index.tsx b/projects/app/src/pageComponents/app/detail/Publish/Wecom/index.tsx index 54814301a7..4ce2e7f5c2 100644 --- a/projects/app/src/pageComponents/app/detail/Publish/Wecom/index.tsx +++ b/projects/app/src/pageComponents/app/detail/Publish/Wecom/index.tsx @@ -26,7 +26,7 @@ import dayjs from 'dayjs'; import dynamic from 'next/dynamic'; import MyMenu from '@fastgpt/web/components/common/MyMenu'; import EmptyTip from '@fastgpt/web/components/common/EmptyTip'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getDocPath } from '@/web/common/system/doc'; import { listCustomDomain } from '@/web/support/customDomain/api'; @@ -49,7 +49,7 @@ const Wecom = ({ appId }: { appId: string }) => { data: shareChatList = [], loading: isFetching, runAsync: refetchShareChatList - } = useRequest2(() => getShareChatList({ appId, type: PublishChannelEnum.wecom }), { + } = useRequest(() => getShareChatList({ appId, type: PublishChannelEnum.wecom }), { manual: false }); @@ -61,7 +61,7 @@ const Wecom = ({ appId }: { appId: string }) => { const [showShareLink, setShowShareLink] = useState(null); - const { data: customDomains = [] } = useRequest2(listCustomDomain, { + const { data: customDomains = [] } = useRequest(listCustomDomain, { manual: false, refreshOnWindowFocus: true }); diff --git a/projects/app/src/pageComponents/app/detail/Publish/components/showShareLinkModal.tsx b/projects/app/src/pageComponents/app/detail/Publish/components/showShareLinkModal.tsx index 27412b1ae4..3c1aed3934 100644 --- a/projects/app/src/pageComponents/app/detail/Publish/components/showShareLinkModal.tsx +++ b/projects/app/src/pageComponents/app/detail/Publish/components/showShareLinkModal.tsx @@ -5,7 +5,7 @@ import MyIcon from '@fastgpt/web/components/common/Icon'; import { useTranslation } from 'next-i18next'; import MyImage from '@fastgpt/web/components/common/Image/MyImage'; import { useSystemStore } from '@/web/common/system/useSystemStore'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { listCustomDomain } from '@/web/support/customDomain/api'; import { useState, useMemo, useEffect } from 'react'; import MySelect from '@fastgpt/web/components/common/MySelect'; @@ -33,7 +33,7 @@ export const ShareLinkContainer = ({ const { t } = useTranslation(); const [customDomain, setCustomDomain] = useState(undefined); - const { data: customDomainList = [] } = useRequest2(listCustomDomain, { + const { data: customDomainList = [] } = useRequest(listCustomDomain, { manual: !showCustomDomainSelector }); diff --git a/projects/app/src/pageComponents/app/detail/PublishHistoriesSlider.tsx b/projects/app/src/pageComponents/app/detail/PublishHistoriesSlider.tsx index e773b77d4e..287a0d64ea 100644 --- a/projects/app/src/pageComponents/app/detail/PublishHistoriesSlider.tsx +++ b/projects/app/src/pageComponents/app/detail/PublishHistoriesSlider.tsx @@ -18,7 +18,7 @@ import Tag from '@fastgpt/web/components/common/Tag'; import MyIcon from '@fastgpt/web/components/common/Icon'; import MyPopover from '@fastgpt/web/components/common/MyPopover'; import MyBox from '@fastgpt/web/components/common/MyBox'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useToast } from '@fastgpt/web/hooks/useToast'; import type { AppVersionSchemaType, VersionListItemType } from '@fastgpt/global/core/app/version'; import type { SimpleAppSnapshotType } from './SimpleApp/useSnapshots'; @@ -198,7 +198,7 @@ const TeamCloud = ({ const { toast } = useToast(); - const { runAsync: onChangeVersion, loading: isLoadingVersion } = useRequest2( + const { runAsync: onChangeVersion, loading: isLoadingVersion } = useRequest( async (versionItem: VersionListItemType) => { const versionDetail = await getAppVersionDetail(versionItem._id, versionItem.appId); @@ -212,7 +212,7 @@ const TeamCloud = ({ } ); - const { runAsync: onUpdateVersion, loading: isEditing } = useRequest2( + const { runAsync: onUpdateVersion, loading: isEditing } = useRequest( async (item: VersionListItemType, name: string) => { await updateAppVersion({ appId: item.appId, diff --git a/projects/app/src/pageComponents/app/detail/SimpleApp/AppCard.tsx b/projects/app/src/pageComponents/app/detail/SimpleApp/AppCard.tsx index 9fb08b24af..d610b136c0 100644 --- a/projects/app/src/pageComponents/app/detail/SimpleApp/AppCard.tsx +++ b/projects/app/src/pageComponents/app/detail/SimpleApp/AppCard.tsx @@ -20,7 +20,7 @@ import { AppContext } from '@/pageComponents/app/detail/context'; import { useContextSelector } from 'use-context-selector'; import MyMenu from '@fastgpt/web/components/common/MyMenu'; import MyModal from '@fastgpt/web/components/common/MyModal'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { postTransition2Workflow } from '@/web/core/app/api/app'; import { form2AppWorkflow } from '@/web/core/app/utils'; import { type SimpleAppSnapshotType } from './useSnapshots'; @@ -47,7 +47,7 @@ const AppCard = ({ // transition to workflow const [transitionCreateNew, setTransitionCreateNew] = useState(); - const { runAsync: onTransition, loading: transiting } = useRequest2( + const { runAsync: onTransition, loading: transiting } = useRequest( async () => { const { nodes, edges } = form2AppWorkflow(appForm, t); await onSaveApp({ diff --git a/projects/app/src/pageComponents/app/detail/SimpleApp/Header.tsx b/projects/app/src/pageComponents/app/detail/SimpleApp/Header.tsx index c99414fe99..1fad6353fd 100644 --- a/projects/app/src/pageComponents/app/detail/SimpleApp/Header.tsx +++ b/projects/app/src/pageComponents/app/detail/SimpleApp/Header.tsx @@ -2,7 +2,7 @@ import React, { useCallback, useEffect, useState } from 'react'; import { useContextSelector } from 'use-context-selector'; import { AppContext } from '../context'; import FolderPath from '@/components/common/folder/Path'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getAppFolderPath } from '@/web/core/app/api/app'; import { Box, Flex, IconButton } from '@chakra-ui/react'; import { useRouter } from 'next/router'; @@ -61,7 +61,7 @@ const Header = ({ const { lastAppListRouteType } = useSystemStore(); - const { data: paths = [] } = useRequest2( + const { data: paths = [] } = useRequest( () => getAppFolderPath({ sourceId: appId, type: 'parent' }), { manual: false, @@ -81,7 +81,7 @@ const Header = ({ [router, lastAppListRouteType] ); - const { runAsync: onClickSave, loading } = useRequest2( + const { runAsync: onClickSave, loading } = useRequest( async ({ isPublish, versionName = formatTime2YMDHMS(new Date()), diff --git a/projects/app/src/pageComponents/app/detail/SimpleApp/components/ToolSelectModal.tsx b/projects/app/src/pageComponents/app/detail/SimpleApp/components/ToolSelectModal.tsx index 3fe3bd5906..d644ffe2c0 100644 --- a/projects/app/src/pageComponents/app/detail/SimpleApp/components/ToolSelectModal.tsx +++ b/projects/app/src/pageComponents/app/detail/SimpleApp/components/ToolSelectModal.tsx @@ -5,7 +5,7 @@ import { useTranslation } from 'next-i18next'; import { parseI18nString } from '@fastgpt/global/common/i18n/utils'; import { Box, Button, Flex, Grid } from '@chakra-ui/react'; import FillRowTabs from '@fastgpt/web/components/common/Tabs/FillRowTabs'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import EmptyTip from '@fastgpt/web/components/common/EmptyTip'; import { type FlowNodeTemplateType, @@ -74,7 +74,7 @@ const ToolSelectModal = ({ onClose, ...props }: Props & { onClose: () => void }) data: rawTemplates = [], runAsync: loadTemplates, loading: isLoading - } = useRequest2( + } = useRequest( async ({ type = templateType, parentId = '', @@ -125,7 +125,7 @@ const ToolSelectModal = ({ onClose, ...props }: Props & { onClose: () => void }) }); }, [rawTemplates, selectedTagIds, templateType]); - const { data: paths = [] } = useRequest2( + const { data: paths = [] } = useRequest( () => { if (templateType === TemplateTypeEnum.systemTools) return getAppToolPaths({ sourceId: parentId, type: 'current' }); @@ -137,7 +137,7 @@ const ToolSelectModal = ({ onClose, ...props }: Props & { onClose: () => void }) } ); - const { data: allTags = [] } = useRequest2(getPluginToolTags, { + const { data: allTags = [] } = useRequest(getPluginToolTags, { manual: false }); @@ -150,7 +150,7 @@ const ToolSelectModal = ({ onClose, ...props }: Props & { onClose: () => void }) [loadTemplates] ); - useRequest2(() => loadTemplates({ searchVal: searchKey }), { + useRequest(() => loadTemplates({ searchVal: searchKey }), { manual: false, throttleWait: 300, refreshDeps: [searchKey] @@ -262,7 +262,7 @@ const RenderList = React.memo(function RenderList({ const onCloseConfigTool = useCallback(() => setConfigTool(undefined), []); const { toast } = useToast(); - const { runAsync: onClickAdd, loading: isLoading } = useRequest2( + const { runAsync: onClickAdd, loading: isLoading } = useRequest( async (template: NodeTemplateListItemType) => { const res = await getToolPreviewNode({ appId: template.id }); diff --git a/projects/app/src/pageComponents/app/detail/TagsEditModal.tsx b/projects/app/src/pageComponents/app/detail/TagsEditModal.tsx index 00af096cde..bfc92ee0f9 100644 --- a/projects/app/src/pageComponents/app/detail/TagsEditModal.tsx +++ b/projects/app/src/pageComponents/app/detail/TagsEditModal.tsx @@ -32,21 +32,23 @@ const TagsEditModal = ({ onClose }: { onClose: () => void }) => { const [selectedTags, setSelectedTags] = useState(appDetail?.teamTags || []); // submit config - const { mutate: saveSubmitSuccess, isLoading: btnLoading } = useRequest({ - mutationFn: async () => { + const { runAsync: saveSubmitSuccess, loading: btnLoading } = useRequest( + async () => { await updateAppDetail({ teamTags: selectedTags }); }, - onSuccess() { - onClose(); - toast({ - title: t('common:update_success'), - status: 'success' - }); - }, - errorToast: t('common:update_failed') - }); + { + onSuccess() { + onClose(); + toast({ + title: t('common:update_success'), + status: 'success' + }); + }, + errorToast: t('common:update_failed') + } + ); const { data: teamTags = [] } = useQuery(['getTeamsTags'], getTeamsTags); const [searchKey, setSearchKey] = useState(''); @@ -133,7 +135,7 @@ const TagsEditModal = ({ onClose }: { onClose: () => void }) => { - diff --git a/projects/app/src/pageComponents/app/detail/Workflow/Header.tsx b/projects/app/src/pageComponents/app/detail/Workflow/Header.tsx index 83e7c4b422..0ff6b0d6f5 100644 --- a/projects/app/src/pageComponents/app/detail/Workflow/Header.tsx +++ b/projects/app/src/pageComponents/app/detail/Workflow/Header.tsx @@ -19,7 +19,7 @@ import { useRouter } from 'next/router'; import AppCard from '../WorkflowComponents/AppCard'; import { useSystem } from '@fastgpt/web/hooks/useSystem'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import MyModal from '@fastgpt/web/components/common/MyModal'; import { formatTime2YMDHMS } from '@fastgpt/global/common/string/time'; import { useToast } from '@fastgpt/web/hooks/useToast'; @@ -75,7 +75,7 @@ const Header = () => { const { lastAppListRouteType } = useSystemStore(); - const { runAsync: onClickSave, loading } = useRequest2( + const { runAsync: onClickSave, loading } = useRequest( async ({ isPublish, versionName = formatTime2YMDHMS(new Date()) diff --git a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/ImportSettings.tsx b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/ImportSettings.tsx index 4e52aaf527..6c81f0046f 100644 --- a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/ImportSettings.tsx +++ b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/ImportSettings.tsx @@ -5,7 +5,7 @@ import { useToast } from '@fastgpt/web/hooks/useToast'; import { useContextSelector } from 'use-context-selector'; import { useTranslation } from 'next-i18next'; import dynamic from 'next/dynamic'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { removeUnauthModels } from '@fastgpt/global/core/workflow/utils'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import { WorkflowUtilsContext } from '../context/workflowUtilsContext'; @@ -26,7 +26,7 @@ const ImportSettings = ({ onClose }: Props) => { const [value, setValue] = useState(''); const { getMyModelList } = useSystemStore(); - const { data: myModels } = useRequest2(getMyModelList, { + const { data: myModels } = useRequest(getMyModelList, { manual: false }); diff --git a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/components/NodeTemplates/header.tsx b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/components/NodeTemplates/header.tsx index 5e2bf79713..67deaafe27 100644 --- a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/components/NodeTemplates/header.tsx +++ b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/components/NodeTemplates/header.tsx @@ -6,7 +6,7 @@ import MyIcon from '@fastgpt/web/components/common/Icon'; import { useTranslation } from 'next-i18next'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import { useRouter } from 'next/router'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getAppToolPaths } from '@/web/core/app/api/tool'; import { getAppFolderPath } from '@/web/core/app/api/app'; import FolderPath from '@/components/common/folder/Path'; @@ -54,7 +54,7 @@ const NodeTemplateListHeader = ({ const router = useRouter(); // Get paths - const { data: paths = [] } = useRequest2( + const { data: paths = [] } = useRequest( () => { if (templateType === TemplateTypeEnum.systemTools) return getAppToolPaths({ sourceId: parentId, type: 'current' }); diff --git a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/components/NodeTemplates/useNodeTemplates.tsx b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/components/NodeTemplates/useNodeTemplates.tsx index 730724dde9..0c4c7daa3b 100644 --- a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/components/NodeTemplates/useNodeTemplates.tsx +++ b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/components/NodeTemplates/useNodeTemplates.tsx @@ -1,5 +1,5 @@ import { useState, useMemo, useCallback, useRef } from 'react'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import type { NodeTemplateListItemType } from '@fastgpt/global/core/workflow/type/node'; import { FlowNodeTypeEnum } from '@fastgpt/global/core/workflow/node/constant'; @@ -29,11 +29,11 @@ export const useNodeTemplates = () => { ); const [selectedTagIds, setSelectedTagIds] = useState([]); - const { data: toolTags = [] } = useRequest2(getPluginToolTags, { + const { data: toolTags = [] } = useRequest(getPluginToolTags, { manual: false }); - const { data: basicNodes } = useRequest2( + const { data: basicNodes } = useRequest( async () => { if (templateType === TemplateTypeEnum.basic) { return basicNodeTemplates @@ -82,7 +82,7 @@ export const useNodeTemplates = () => { data: teamAndSystemTools, loading: templatesIsLoading, runAsync: loadNodeTemplates - } = useRequest2( + } = useRequest( async ({ parentId, type = templateType, diff --git a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/hooks/useKeyboard.tsx b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/hooks/useKeyboard.tsx index ce2e9f5693..18211f8983 100644 --- a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/hooks/useKeyboard.tsx +++ b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/hooks/useKeyboard.tsx @@ -9,7 +9,7 @@ import { useWorkflowUtils } from './useUtils'; import { useKeyPress as useKeyPressEffect } from 'ahooks'; import { FlowNodeTypeEnum } from '@fastgpt/global/core/workflow/node/constant'; import { WorkflowBufferDataContext } from '../../context/workflowInitContext'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import { WorkflowUIContext } from '../../context/workflowUIContext'; @@ -21,7 +21,7 @@ export const useKeyboard = () => { const mousePosition = useContextSelector(WorkflowUIContext, (v) => v.mousePosition); const { getMyModelList } = useSystemStore(); - const { data: myModels } = useRequest2(getMyModelList, { + const { data: myModels } = useRequest(getMyModelList, { manual: false }); diff --git a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/NodeCode/Copilot.tsx b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/NodeCode/Copilot.tsx index 912cc40fbf..fb1ac7dfa1 100644 --- a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/NodeCode/Copilot.tsx +++ b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/NodeCode/Copilot.tsx @@ -1,7 +1,7 @@ import React, { useEffect, useMemo, useRef, useState } from 'react'; import { Box, Button, CloseButton, Flex } from '@chakra-ui/react'; import { useContextSelector } from 'use-context-selector'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import MyIcon from '@fastgpt/web/components/common/Icon'; import MyPopover from '@fastgpt/web/components/common/MyPopover'; import Avatar from '@fastgpt/web/components/common/Avatar'; @@ -179,7 +179,7 @@ const NodeCopilot = ({ return match; }); }; - const { runAsync: handleSendOptimization, loading } = useRequest2(async () => { + const { runAsync: handleSendOptimization, loading } = useRequest(async () => { if (isInputEmpty) return; const processedInput = replaceVariables(optimizerInput); diff --git a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/NodeLaf.tsx b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/NodeLaf.tsx index 79e80cb7cf..0fa2afdd2f 100644 --- a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/NodeLaf.tsx +++ b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/NodeLaf.tsx @@ -23,7 +23,7 @@ import RenderToolInput from './render/RenderToolInput'; import RenderInput from './render/RenderInput'; import RenderOutput from './render/RenderOutput'; import { getErrText } from '@fastgpt/global/common/error/utils'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { type FlowNodeInputItemType, type FlowNodeOutputItemType @@ -128,7 +128,7 @@ const NodeLaf = (props: NodeProps) => { [lafFunctionSelectList, requestUrl?.value] ); - const { run: onSyncParams, loading: isSyncing } = useRequest2( + const { run: onSyncParams, loading: isSyncing } = useRequest( async () => { await refetchFunction(); const lafFunction = lafData?.lafFunctions.find( diff --git a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/NodeToolParams/ToolParamsEditModal.tsx b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/NodeToolParams/ToolParamsEditModal.tsx index 8658a46790..2ad9f21557 100644 --- a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/NodeToolParams/ToolParamsEditModal.tsx +++ b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/NodeToolParams/ToolParamsEditModal.tsx @@ -7,7 +7,7 @@ import React, { useCallback, useMemo } from 'react'; import { useForm } from 'react-hook-form'; import { useTranslation } from 'next-i18next'; import { defaultEditFormData } from '../render/RenderToolInput/EditFieldModal'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useContextSelector } from 'use-context-selector'; import { useToast } from '@fastgpt/web/hooks/useToast'; import { FlowNodeOutputTypeEnum } from '@fastgpt/global/core/workflow/node/constant'; @@ -34,7 +34,7 @@ const ToolParamsEditModal = ({ }); const valueType = watch('valueType'); - const { runAsync: onClickSubmit } = useRequest2( + const { runAsync: onClickSubmit } = useRequest( async (e: FlowNodeInputItemType) => { e.key = e.key.trim(); diff --git a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/NodeCard.tsx b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/NodeCard.tsx index 72f376bdde..53a1bfad53 100644 --- a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/NodeCard.tsx +++ b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/NodeCard.tsx @@ -31,7 +31,7 @@ import { getNanoid } from '@fastgpt/global/common/string/tools'; import { useContextSelector } from 'use-context-selector'; import { moduleTemplatesFlat } from '@fastgpt/global/core/workflow/template/constants'; import MyTooltip from '@fastgpt/web/components/common/MyTooltip'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useWorkflowUtils } from '../../hooks/useUtils'; import { WorkflowBufferDataContext } from '../../../context/workflowInitContext'; import MyImage from '@fastgpt/web/components/common/Image/MyImage'; @@ -237,7 +237,7 @@ const NodeCard = (props: Props) => { return false; }, [isAppNode, node]); - const { data: nodeTemplate } = useRequest2( + const { data: nodeTemplate } = useRequest( async () => { if (node?.pluginData?.error) { return undefined; @@ -473,7 +473,7 @@ const NodeTitleSection = React.memo<{ }); }, [onOpenCustomTitleModal, name, onChangeNode, nodeId, toast, t]); - const { runAsync: onGetPermission } = useRequest2(getAppPermission, { + const { runAsync: onGetPermission } = useRequest(getAppPermission, { onSuccess(permission) { if (permission.hasWritePer) { window.open(`/app/detail?appId=${childAppId}`, '_blank'); @@ -601,7 +601,7 @@ const NodeVersion = React.memo(function NodeVersion({ node }: { node: FlowNodeIt manual: false }); - const { runAsync: onUpdateVersion, loading: isUpdating } = useRequest2( + const { runAsync: onUpdateVersion, loading: isUpdating } = useRequest( async (versionId: string) => { if (!node) return; diff --git a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/templates/FileSelect.tsx b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/templates/FileSelect.tsx index 1326d5a755..9e8669aec1 100644 --- a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/templates/FileSelect.tsx +++ b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/templates/FileSelect.tsx @@ -6,7 +6,7 @@ import Avatar from '@fastgpt/web/components/common/Avatar'; import SelectAppModal from '../../../../SelectAppModal'; import { useTranslation } from 'next-i18next'; import { useContextSelector } from 'use-context-selector'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getAppDetailById } from '@/web/core/app/api'; import { WorkflowActionsContext } from '@/pageComponents/app/detail/WorkflowComponents/context/workflowActionsContext'; import { AppContext } from '@/pageComponents/app/detail/context'; diff --git a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/templates/SelectApp.tsx b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/templates/SelectApp.tsx index e6b432ca3a..33d31d9a7b 100644 --- a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/templates/SelectApp.tsx +++ b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderInput/templates/SelectApp.tsx @@ -6,7 +6,7 @@ import Avatar from '@fastgpt/web/components/common/Avatar'; import SelectAppModal from '../../../../SelectAppModal'; import { useTranslation } from 'next-i18next'; import { useContextSelector } from 'use-context-selector'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getAppDetailById } from '@/web/core/app/api'; import { WorkflowActionsContext } from '@/pageComponents/app/detail/WorkflowComponents/context/workflowActionsContext'; import { AppContext } from '@/pageComponents/app/detail/context'; @@ -23,7 +23,7 @@ const SelectAppRender = ({ item, nodeId }: RenderInputProps) => { } = useDisclosure(); const value = item.value as SelectAppItemType | undefined; - const { data: appDetail, loading } = useRequest2( + const { data: appDetail, loading } = useRequest( () => { if (value?.id) return getAppDetailById(value.id); return Promise.resolve(null); diff --git a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderToolInput/EditFieldModal.tsx b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderToolInput/EditFieldModal.tsx index 10b920f4d3..0a526ed7de 100644 --- a/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderToolInput/EditFieldModal.tsx +++ b/projects/app/src/pageComponents/app/detail/WorkflowComponents/Flow/nodes/render/RenderToolInput/EditFieldModal.tsx @@ -37,38 +37,37 @@ const EditFieldModal = ({ }); const valueType = watch('valueType'); - const { mutate: onclickSubmit } = useRequest({ - mutationFn: async (e: FlowNodeInputItemType) => { - e.key = e.key.trim(); + const { runAsync: onclickSubmit } = useRequest(async (e: FlowNodeInputItemType) => { + e.key = e.key.trim(); - const inputConfig: FlowNodeInputItemType = { - ...e, - description: e.toolDescription, - label: e.key - }; - if (defaultValue.key) { - // edit - onChangeNode({ - nodeId, - type: 'replaceInput', - key: defaultValue.key, - value: inputConfig - }); - } else { - // create - onChangeNode({ - nodeId, - type: 'addInput', - index: 1, - value: { - ...e, - label: e.key - } - }); - } - onClose(); + const inputConfig: FlowNodeInputItemType = { + ...e, + description: e.toolDescription, + label: e.key + }; + if (defaultValue.key) { + // edit + onChangeNode({ + nodeId, + type: 'replaceInput', + key: defaultValue.key, + value: inputConfig + }); + } else { + // create + onChangeNode({ + nodeId, + type: 'addInput', + index: 1, + value: { + ...e, + label: e.key + } + }); } + onClose(); }); + const onclickSubmitError = useCallback( (e: Object) => { for (const item of Object.values(e)) { diff --git a/projects/app/src/pageComponents/app/detail/components/QuickCreateDatasetModal.tsx b/projects/app/src/pageComponents/app/detail/components/QuickCreateDatasetModal.tsx index 36524a646b..80178113a7 100644 --- a/projects/app/src/pageComponents/app/detail/components/QuickCreateDatasetModal.tsx +++ b/projects/app/src/pageComponents/app/detail/components/QuickCreateDatasetModal.tsx @@ -17,7 +17,7 @@ import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; import MyTooltip from '@fastgpt/web/components/common/MyTooltip'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { useUploadAvatar } from '@fastgpt/web/common/file/hooks/useUploadAvatar'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { postCreateDatasetWithFiles } from '@/web/core/dataset/api'; import { getUploadAvatarPresignedUrl, getUploadTempFilePresignedUrl } from '@/web/common/file/api'; import { useSystemStore } from '@/web/common/system/useSystemStore'; @@ -76,7 +76,7 @@ const QuickCreateDatasetModal = ({ } }); - const { runAsync: handleSelectFiles, loading: uploading } = useRequest2( + const { runAsync: handleSelectFiles, loading: uploading } = useRequest( async (files: SelectFileItemType[]) => { await Promise.all( files.map(async ({ fileId, file }) => { @@ -162,7 +162,7 @@ const QuickCreateDatasetModal = ({ } ); - const { runAsync: onCreate, loading: isCreating } = useRequest2( + const { runAsync: onCreate, loading: isCreating } = useRequest( async (data) => { return await postCreateDatasetWithFiles({ datasetParams: { diff --git a/projects/app/src/pageComponents/app/detail/context.tsx b/projects/app/src/pageComponents/app/detail/context.tsx index 7d19c5822d..0ef0a8a29b 100644 --- a/projects/app/src/pageComponents/app/detail/context.tsx +++ b/projects/app/src/pageComponents/app/detail/context.tsx @@ -14,7 +14,7 @@ import { useTranslation } from 'next-i18next'; import { type AppChatConfigType, type AppDetailType } from '@fastgpt/global/core/app/type'; import { type AppUpdateParams, type PostPublishAppProps } from '@/global/core/app/api'; import { postPublishApp, getAppLatestVersion } from '@/web/core/app/api/version'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import dynamic from 'next/dynamic'; import { useDisclosure } from '@chakra-ui/react'; import { useConfirm } from '@fastgpt/web/hooks/useConfirm'; @@ -124,7 +124,7 @@ const AppContextProvider = ({ children }: { children: ReactNode }) => { ); const [appDetail, setAppDetail] = useState(defaultApp); - const { loading: loadingApp, runAsync: reloadApp } = useRequest2( + const { loading: loadingApp, runAsync: reloadApp } = useRequest( () => { if (appId) { return getAppDetailById(appId); @@ -144,7 +144,7 @@ const AppContextProvider = ({ children }: { children: ReactNode }) => { } ); - const { data: appLatestVersion, run: reloadAppLatestVersion } = useRequest2( + const { data: appLatestVersion, run: reloadAppLatestVersion } = useRequest( () => getAppLatestVersion({ appId }), { manual: !appDetail?.permission?.hasWritePer, @@ -152,7 +152,7 @@ const AppContextProvider = ({ children }: { children: ReactNode }) => { } ); - const { runAsync: updateAppDetail } = useRequest2(async (data: AppUpdateParams) => { + const { runAsync: updateAppDetail } = useRequest(async (data: AppUpdateParams) => { await putAppById(appId, data); setAppDetail((state) => ({ ...state, @@ -161,7 +161,7 @@ const AppContextProvider = ({ children }: { children: ReactNode }) => { })); }); - const { runAsync: onSaveApp } = useRequest2( + const { runAsync: onSaveApp } = useRequest( async (data: PostPublishAppProps) => { try { if (!appDetail.permission.hasWritePer) return; @@ -190,7 +190,7 @@ const AppContextProvider = ({ children }: { children: ReactNode }) => { type: 'delete', content: isAgent ? t('app:confirm_del_app_tip') : t('app:confirm_del_tool_tip') }); - const { runAsync: deleteApp } = useRequest2( + const { runAsync: deleteApp } = useRequest( async () => { if (!appDetail) return Promise.reject('Not load app'); return delAppById(appDetail._id); diff --git a/projects/app/src/pageComponents/app/detail/useChatTest.tsx b/projects/app/src/pageComponents/app/detail/useChatTest.tsx index f6be77ec5d..9abafd2ada 100644 --- a/projects/app/src/pageComponents/app/detail/useChatTest.tsx +++ b/projects/app/src/pageComponents/app/detail/useChatTest.tsx @@ -15,7 +15,7 @@ import { type AppChatConfigType } from '@fastgpt/global/core/app/type'; import ChatBox from '@/components/core/chat/ChatContainer/ChatBox'; import { useChatStore } from '@/web/core/chat/context/useChatStore'; import { ChatItemContext } from '@/web/core/chat/context/chatItemContext'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getInitChatInfo } from '@/web/core/chat/api'; import { useTranslation } from 'next-i18next'; import { ChatTypeEnum } from '@/components/core/chat/ChatContainer/ChatBox/constants'; @@ -107,7 +107,7 @@ export const useChatTest = ({ ]); // init chat data - const { loading } = useRequest2( + const { loading } = useRequest( async () => { if (!appId || !chatId) return; const res = await getInitChatInfo({ appId, chatId }); diff --git a/projects/app/src/pageComponents/app/evaluation/DetailModal.tsx b/projects/app/src/pageComponents/app/evaluation/DetailModal.tsx index 8c957c4268..dde625befa 100644 --- a/projects/app/src/pageComponents/app/evaluation/DetailModal.tsx +++ b/projects/app/src/pageComponents/app/evaluation/DetailModal.tsx @@ -14,7 +14,7 @@ import { } from '@chakra-ui/react'; import Avatar from '@fastgpt/web/components/common/Avatar'; import MyModal from '@fastgpt/web/components/common/MyModal'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; import { useEffect, useMemo, useState } from 'react'; import MyIcon from '@fastgpt/web/components/common/Icon'; @@ -127,7 +127,7 @@ const EvaluationDetailModal = ({ [t] ); - const { runAsync: exportEval, loading: isDownloading } = useRequest2(async () => { + const { runAsync: exportEval, loading: isDownloading } = useRequest(async () => { await downloadFetch({ url: `/api/proApi/core/app/evaluation/exportItems?evalId=${evalDetail._id}`, filename: `${evalDetail.name}.csv`, @@ -138,21 +138,21 @@ const EvaluationDetailModal = ({ }); }); - const { runAsync: delEvalItem, loading: isLoadingDelete } = useRequest2(deleteEvalItem, { + const { runAsync: delEvalItem, loading: isLoadingDelete } = useRequest(deleteEvalItem, { onSuccess: () => { fetchData(); fetchEvalList(); } }); - const { runAsync: rerunItem, loading: isLoadingRerun } = useRequest2(retryEvalItem, { + const { runAsync: rerunItem, loading: isLoadingRerun } = useRequest(retryEvalItem, { onSuccess: () => { fetchData(); fetchEvalList(); } }); - const { runAsync: updateItem, loading: isLoadingUpdate } = useRequest2( + const { runAsync: updateItem, loading: isLoadingUpdate } = useRequest( async (data: updateEvalItemBody) => { await updateEvalItem({ ...data, evalItemId: evalItem.evalItemId }); }, diff --git a/projects/app/src/pageComponents/app/tool/SecretInputModal.tsx b/projects/app/src/pageComponents/app/tool/SecretInputModal.tsx index 0eb9abd0c3..36670164da 100644 --- a/projects/app/src/pageComponents/app/tool/SecretInputModal.tsx +++ b/projects/app/src/pageComponents/app/tool/SecretInputModal.tsx @@ -24,7 +24,7 @@ import InputRender from '@/components/core/app/formRender'; import { secretInputTypeToInputType } from '@/components/core/app/formRender/utils'; import { getAppToolTemplates } from '@/web/core/app/api/tool'; import type { NodeTemplateListItemType } from '@fastgpt/global/core/workflow/type/node'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { InputTypeEnum } from '@/components/core/app/formRender/constant'; export type ToolParamsFormType = { @@ -81,7 +81,7 @@ const SecretInputModal = ({ }); const configType = watch('type'); - const { data: childTools = [] } = useRequest2( + const { data: childTools = [] } = useRequest( async () => { if (!isFolder) return []; return getAppToolTemplates({ parentId }); diff --git a/projects/app/src/pageComponents/chat/ChatFavouriteApp/index.tsx b/projects/app/src/pageComponents/chat/ChatFavouriteApp/index.tsx index 8e8b782413..0072102786 100644 --- a/projects/app/src/pageComponents/chat/ChatFavouriteApp/index.tsx +++ b/projects/app/src/pageComponents/chat/ChatFavouriteApp/index.tsx @@ -13,7 +13,7 @@ import { TabList, Tabs } from '@chakra-ui/react'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { useTranslation } from 'react-i18next'; import { useForm } from 'react-hook-form'; @@ -76,7 +76,7 @@ const ChatFavouriteApp = () => { const selectedTag = watch('tag'); // load all favourites for checked state and saving - const { loading: isSearching, data: favouriteApps = [] } = useRequest2( + const { loading: isSearching, data: favouriteApps = [] } = useRequest( async () => { return await getFavouriteApps({ name: searchAppName, diff --git a/projects/app/src/pageComponents/chat/ChatQuoteList/CollectionQuoteReader.tsx b/projects/app/src/pageComponents/chat/ChatQuoteList/CollectionQuoteReader.tsx index 0d93d693e7..825de471b0 100644 --- a/projects/app/src/pageComponents/chat/ChatQuoteList/CollectionQuoteReader.tsx +++ b/projects/app/src/pageComponents/chat/ChatQuoteList/CollectionQuoteReader.tsx @@ -8,7 +8,7 @@ import MyIcon from '@fastgpt/web/components/common/Icon'; import { useRouter } from 'next/router'; import { useTranslation } from 'next-i18next'; import DownloadButton from './DownloadButton'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { downloadFetch } from '@/web/common/system/utils'; import { useMemo, useState } from 'react'; import { getDatasetDataPermission } from '@/web/core/dataset/api'; @@ -45,7 +45,7 @@ const CollectionReader = ({ const [quoteIndex, setQuoteIndex] = useState(0); // Get dataset permission - const { data: datasetData } = useRequest2(async () => await getDatasetDataPermission(datasetId), { + const { data: datasetData } = useRequest(async () => await getDatasetDataPermission(datasetId), { manual: !userInfo || !datasetId, refreshDeps: [datasetId, userInfo] }); @@ -123,7 +123,7 @@ const CollectionReader = ({ [currentQuoteItem?.id, datasetDataList, filterResults] ); - const { runAsync: handleDownload } = useRequest2(async () => { + const { runAsync: handleDownload } = useRequest(async () => { await downloadFetch({ url: '/api/core/dataset/collection/export', filename: 'data.csv', diff --git a/projects/app/src/pageComponents/chat/ChatQuoteList/QuoteReader.tsx b/projects/app/src/pageComponents/chat/ChatQuoteList/QuoteReader.tsx index 9ae2341b36..9c0b075b82 100644 --- a/projects/app/src/pageComponents/chat/ChatQuoteList/QuoteReader.tsx +++ b/projects/app/src/pageComponents/chat/ChatQuoteList/QuoteReader.tsx @@ -3,7 +3,7 @@ import { type SearchDataResponseItemType } from '@fastgpt/global/core/dataset/ty import MyIcon from '@fastgpt/web/components/common/Icon'; import MyBox from '@fastgpt/web/components/common/MyBox'; import { useTranslation } from 'next-i18next'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import QuoteItem from './QuoteItem'; import { useMemo } from 'react'; import { getSourceNameIcon } from '@fastgpt/global/core/dataset/utils'; @@ -26,7 +26,7 @@ const QuoteReader = ({ return rawSearch.filter((item) => metadata.collectionIdList.includes(item.collectionId)); }, [rawSearch, metadata.collectionIdList]); - const { data: quoteList, loading } = useRequest2( + const { data: quoteList, loading } = useRequest( async () => await getQuoteDataList({ datasetDataIdList: filterRawSearch.map((item) => item.id), diff --git a/projects/app/src/pageComponents/chat/ChatSetting/FavouriteAppSetting/AddFavouriteAppModal.tsx b/projects/app/src/pageComponents/chat/ChatSetting/FavouriteAppSetting/AddFavouriteAppModal.tsx index a8b1de610f..41d37a53b9 100644 --- a/projects/app/src/pageComponents/chat/ChatSetting/FavouriteAppSetting/AddFavouriteAppModal.tsx +++ b/projects/app/src/pageComponents/chat/ChatSetting/FavouriteAppSetting/AddFavouriteAppModal.tsx @@ -3,7 +3,7 @@ import MyModal from '@fastgpt/web/components/common/MyModal'; import { useTranslation } from 'react-i18next'; import React, { useCallback, useState } from 'react'; import { useForm } from 'react-hook-form'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { getMyApps } from '@/web/core/app/api'; import Avatar from '@fastgpt/web/components/common/Avatar'; @@ -32,7 +32,7 @@ const AddFavouriteAppModal = ({ onClose, onRefresh }: Props) => { const searchAppNameValue = watchSearchValue('name'); const [parentId, setParentId] = useState(''); - const { data: appData = { apps: [], paths: [] }, loading: isFetching } = useRequest2( + const { data: appData = { apps: [], paths: [] }, loading: isFetching } = useRequest( async () => { const [apps, paths] = await Promise.all([ getMyApps({ @@ -64,7 +64,7 @@ const AddFavouriteAppModal = ({ onClose, onRefresh }: Props) => { [] ); - useRequest2(getFavouriteApps, { + useRequest(getFavouriteApps, { manual: false, onSuccess(res) { setSelectedApps( @@ -83,7 +83,7 @@ const AddFavouriteAppModal = ({ onClose, onRefresh }: Props) => { }); }, []); - const { run: updateFavourites, loading: isUpdating } = useRequest2( + const { run: updateFavourites, loading: isUpdating } = useRequest( async () => { await updateFavouriteApps( selectedApps.map((app, order) => ({ appId: app.id, order: order + 1 })) diff --git a/projects/app/src/pageComponents/chat/ChatSetting/FavouriteAppSetting/TagManageModal.tsx b/projects/app/src/pageComponents/chat/ChatSetting/FavouriteAppSetting/TagManageModal.tsx index 2192f636ae..993af0232e 100644 --- a/projects/app/src/pageComponents/chat/ChatSetting/FavouriteAppSetting/TagManageModal.tsx +++ b/projects/app/src/pageComponents/chat/ChatSetting/FavouriteAppSetting/TagManageModal.tsx @@ -13,7 +13,7 @@ import { VStack } from '@chakra-ui/react'; import MyModal from '@fastgpt/web/components/common/MyModal'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import React, { useEffect, useRef, useState, useCallback, useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { useContextSelector } from 'use-context-selector'; @@ -192,7 +192,7 @@ const SaveTagForAppSubPanel = ({ }); const searchAppName = watch('name'); // search favourite apps for list rendering (only favourites, not all apps) - const { data: visibleFavourites = [], loading: isSearching } = useRequest2( + const { data: visibleFavourites = [], loading: isSearching } = useRequest( async () => { return await getFavouriteApps({ name: searchAppName }); }, @@ -204,7 +204,7 @@ const SaveTagForAppSubPanel = ({ ); // load all favourites for checked state and saving - const { data: favouriteApps = [] } = useRequest2( + const { data: favouriteApps = [] } = useRequest( async () => { return await getFavouriteApps({ name: '' }); }, @@ -253,7 +253,7 @@ const SaveTagForAppSubPanel = ({ ); // save apps (update tags) via updateFavouriteApps - const { loading: isSaving, runAsync: saveApps } = useRequest2( + const { loading: isSaving, runAsync: saveApps } = useRequest( async () => { await updateFavouriteAppTags( localAllFavourites.map((item) => ({ id: item._id, tags: item.favouriteTags })) @@ -388,7 +388,7 @@ const TagManageModal = ({ onClose, onRefresh }: Props) => { const [isEditing, setIsEditing] = useState([]); // update tags - const { loading: isUpdating, runAsync: updateTags } = useRequest2( + const { loading: isUpdating, runAsync: updateTags } = useRequest( async (nextTags: ChatFavouriteTagType[]) => { await updateChatSetting({ favouriteTags: nextTags }); }, @@ -431,7 +431,7 @@ const TagManageModal = ({ onClose, onRefresh }: Props) => { setIsEditing((prev) => prev.filter((v) => v !== target.id)); }, []); // delete tag - const { loading: isDeleting, runAsync: deleteTag } = useRequest2( + const { loading: isDeleting, runAsync: deleteTag } = useRequest( async (target: ChatFavouriteTagType) => { const next = localTags.filter((c) => c.id !== target.id); setLocalTags(next); @@ -463,7 +463,7 @@ const TagManageModal = ({ onClose, onRefresh }: Props) => { const isLoading = isUpdating || isDeleting || isEditing.length > 0; // counts - const { data: allFavourites = [] } = useRequest2( + const { data: allFavourites = [] } = useRequest( async () => { return await getFavouriteApps({ name: '' }); }, diff --git a/projects/app/src/pageComponents/chat/ChatSetting/FavouriteAppSetting/index.tsx b/projects/app/src/pageComponents/chat/ChatSetting/FavouriteAppSetting/index.tsx index 3262bd666b..f90292d484 100644 --- a/projects/app/src/pageComponents/chat/ChatSetting/FavouriteAppSetting/index.tsx +++ b/projects/app/src/pageComponents/chat/ChatSetting/FavouriteAppSetting/index.tsx @@ -10,7 +10,7 @@ import { useDisclosure } from '@chakra-ui/react'; import MySelect from '@fastgpt/web/components/common/MySelect'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useRef, useState } from 'react'; import { useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; @@ -81,7 +81,7 @@ const FavouriteAppSetting = ({ Header }: Props) => { const [localFavourites, setLocalFavourites] = useState([]); // search favourite apps by apps' name and tag - const { loading: isSearching, runAsync: getApps } = useRequest2( + const { loading: isSearching, runAsync: getApps } = useRequest( async () => { const apps = await getFavouriteApps({ name: searchAppNameValue, @@ -98,7 +98,7 @@ const FavouriteAppSetting = ({ Header }: Props) => { ); // update app order - const { runAsync: orderApp } = useRequest2( + const { runAsync: orderApp } = useRequest( async (list: ChatFavouriteAppType[]) => { await updateFavouriteAppOrder(list.map((item, idx) => ({ id: item._id, order: idx }))); getApps(); @@ -107,7 +107,7 @@ const FavouriteAppSetting = ({ Header }: Props) => { ); // delete app - const { runAsync: deleteApp } = useRequest2( + const { runAsync: deleteApp } = useRequest( async (id: string) => { await deleteFavouriteApp({ id }); getApps(); diff --git a/projects/app/src/pageComponents/chat/ChatSetting/HomepageSetting/AddQuickAppModal.tsx b/projects/app/src/pageComponents/chat/ChatSetting/HomepageSetting/AddQuickAppModal.tsx index 2556176691..46f124aab8 100644 --- a/projects/app/src/pageComponents/chat/ChatSetting/HomepageSetting/AddQuickAppModal.tsx +++ b/projects/app/src/pageComponents/chat/ChatSetting/HomepageSetting/AddQuickAppModal.tsx @@ -1,7 +1,7 @@ import { getMyApps, getAppBasicInfoByIds } from '@/web/core/app/api'; import { Box, Button, Grid, GridItem, HStack, VStack, Flex, Checkbox } from '@chakra-ui/react'; import MyModal from '@fastgpt/web/components/common/MyModal'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useCallback, useEffect, useMemo, useState } from 'react'; import { useForm } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; @@ -42,7 +42,7 @@ const AddQuickAppModal = ({ selectedIds, onClose, onConfirm }: Props) => { const { data: appData = { apps: [], paths: [] as { parentId: string; parentName: string }[] }, loading: isFetching - } = useRequest2( + } = useRequest( async () => { const [apps, paths] = await Promise.all([ getMyApps({ @@ -127,7 +127,7 @@ const AddQuickAppModal = ({ selectedIds, onClose, onConfirm }: Props) => { .catch(() => {}); }, [localSelectedIds, selectedInfo]); - const { loading: isUpdating, runAsync: confirmSelect } = useRequest2( + const { loading: isUpdating, runAsync: confirmSelect } = useRequest( async () => { onConfirm(checkedQuickApps); }, diff --git a/projects/app/src/pageComponents/chat/ChatSetting/HomepageSetting/index.tsx b/projects/app/src/pageComponents/chat/ChatSetting/HomepageSetting/index.tsx index bdafa29c69..1a6b2bf8d0 100644 --- a/projects/app/src/pageComponents/chat/ChatSetting/HomepageSetting/index.tsx +++ b/projects/app/src/pageComponents/chat/ChatSetting/HomepageSetting/index.tsx @@ -14,7 +14,7 @@ import { useCallback, useState } from 'react'; import { useForm } from 'react-hook-form'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { updateChatSetting } from '@/web/core/chat/api'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import ImageUpload from '@/pageComponents/chat/ChatSetting/ImageUpload'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import ToolSelectModal from '@/pageComponents/chat/ChatSetting/ToolSelectModal'; @@ -112,7 +112,7 @@ const HomepageSetting = ({ Header, onDiagramShow }: Props) => { [selectedTools, setValue] ); - const { runAsync: onSubmit, loading: isSaving } = useRequest2( + const { runAsync: onSubmit, loading: isSaving } = useRequest( async (values: ChatSettingType) => { const { quickAppList, ...params } = values; return updateChatSetting({ diff --git a/projects/app/src/pageComponents/chat/ChatSetting/ToolSelectModal.tsx b/projects/app/src/pageComponents/chat/ChatSetting/ToolSelectModal.tsx index a0d4dcc4b2..315a3a1e8f 100644 --- a/projects/app/src/pageComponents/chat/ChatSetting/ToolSelectModal.tsx +++ b/projects/app/src/pageComponents/chat/ChatSetting/ToolSelectModal.tsx @@ -4,7 +4,7 @@ import MyModal from '@fastgpt/web/components/common/MyModal'; import { useTranslation } from 'next-i18next'; import { Box, Button, Flex, Grid } from '@chakra-ui/react'; import { parseI18nString } from '@fastgpt/global/common/i18n/utils'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import EmptyTip from '@fastgpt/web/components/common/EmptyTip'; import { type FlowNodeTemplateType, @@ -55,7 +55,7 @@ const ToolSelectModal = ({ onClose, ...props }: Props & { onClose: () => void }) data: rawTemplates = [], runAsync: loadTemplates, loading: isLoading - } = useRequest2( + } = useRequest( async ({ parentId = '', searchVal = searchKey @@ -74,7 +74,7 @@ const ToolSelectModal = ({ onClose, ...props }: Props & { onClose: () => void }) } ); - const { data: allTags = [] } = useRequest2(getPluginToolTags, { + const { data: allTags = [] } = useRequest(getPluginToolTags, { manual: false }); @@ -87,7 +87,7 @@ const ToolSelectModal = ({ onClose, ...props }: Props & { onClose: () => void }) }); }, [rawTemplates, selectedTagIds]); - const { data: paths = [] } = useRequest2( + const { data: paths = [] } = useRequest( () => { return getAppToolPaths({ sourceId: parentId, type: 'current' }); }, @@ -106,7 +106,7 @@ const ToolSelectModal = ({ onClose, ...props }: Props & { onClose: () => void }) [loadTemplates] ); - useRequest2(() => loadTemplates({ searchVal: searchKey }), { + useRequest(() => loadTemplates({ searchVal: searchKey }), { manual: false, throttleWait: 300, refreshDeps: [searchKey] @@ -185,7 +185,7 @@ const RenderList = React.memo(function RenderList({ const onCloseConfigTool = useCallback(() => setConfigTool(undefined), []); const { toast } = useToast(); - const { runAsync: onClickAdd, loading: isLoading } = useRequest2( + const { runAsync: onClickAdd, loading: isLoading } = useRequest( async (template: NodeTemplateListItemType) => { const res = await getToolPreviewNode({ appId: template.id }); diff --git a/projects/app/src/pageComponents/chat/ChatWindow/AppChatWindow.tsx b/projects/app/src/pageComponents/chat/ChatWindow/AppChatWindow.tsx index 4e8974924d..e489b66875 100644 --- a/projects/app/src/pageComponents/chat/ChatWindow/AppChatWindow.tsx +++ b/projects/app/src/pageComponents/chat/ChatWindow/AppChatWindow.tsx @@ -15,7 +15,7 @@ import { getChatTitleFromChatMessage } from '@fastgpt/global/core/chat/utils'; import { GPTMessages2Chats } from '@fastgpt/global/core/chat/adapt'; import { useChatStore } from '@/web/core/chat/context/useChatStore'; import { ChatRecordContext } from '@/web/core/chat/context/chatRecordContext'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getInitChatInfo } from '@/web/core/chat/api'; import { useUserStore } from '@/web/support/user/useUserStore'; import NextHead from '@/components/common/NextHead'; @@ -56,7 +56,7 @@ const AppChatWindow = () => { const handlePaneChange = useContextSelector(ChatPageContext, (v) => v.handlePaneChange); const refreshRecentlyUsed = useContextSelector(ChatPageContext, (v) => v.refreshRecentlyUsed); - const { loading } = useRequest2( + const { loading } = useRequest( async () => { if (!appId || forbidLoadChat.current) return; diff --git a/projects/app/src/pageComponents/chat/ChatWindow/HomeChatWindow.tsx b/projects/app/src/pageComponents/chat/ChatWindow/HomeChatWindow.tsx index 131e72da3b..c1b47b4047 100644 --- a/projects/app/src/pageComponents/chat/ChatWindow/HomeChatWindow.tsx +++ b/projects/app/src/pageComponents/chat/ChatWindow/HomeChatWindow.tsx @@ -23,7 +23,7 @@ import { getChatTitleFromChatMessage } from '@fastgpt/global/core/chat/utils'; import { GPTMessages2Chats } from '@fastgpt/global/core/chat/adapt'; import { useLocalStorageState, useMemoizedFn, useMount } from 'ahooks'; import { useChatStore } from '@/web/core/chat/context/useChatStore'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getInitChatInfo } from '@/web/core/chat/api'; import { useUserStore } from '@/web/support/user/useUserStore'; import NextHead from '@/components/common/NextHead'; @@ -124,7 +124,7 @@ const HomeChatWindow = () => { }, [availableTools, chatSettings?.selectedTools]); // 初始化聊天数据 - const { loading } = useRequest2( + const { loading } = useRequest( async () => { if (!appId || forbidLoadChat.current || !feConfigs?.isPlus) return; diff --git a/projects/app/src/pageComponents/chat/WorkorderEntrance.tsx b/projects/app/src/pageComponents/chat/WorkorderEntrance.tsx index af7f838945..9d9d2d720b 100644 --- a/projects/app/src/pageComponents/chat/WorkorderEntrance.tsx +++ b/projects/app/src/pageComponents/chat/WorkorderEntrance.tsx @@ -1,5 +1,5 @@ import { Button } from '@chakra-ui/react'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; function WorkorderEntrance() { diff --git a/projects/app/src/pageComponents/config/ImportPluginModal.tsx b/projects/app/src/pageComponents/config/ImportPluginModal.tsx index b21a14a79b..b6797254ae 100644 --- a/projects/app/src/pageComponents/config/ImportPluginModal.tsx +++ b/projects/app/src/pageComponents/config/ImportPluginModal.tsx @@ -3,7 +3,7 @@ import { Box, Button, Flex, HStack, VStack } from '@chakra-ui/react'; import MyRightDrawer from '@fastgpt/web/components/common/MyDrawer/MyRightDrawer'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { useTranslation } from 'react-i18next'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import FileSelectorBox, { type SelectFileItemType } from '@/components/Select/FileSelectorBox'; import { getPkgPluginUploadURL, @@ -43,7 +43,7 @@ const ImportPluginModal = ({ const [selectFiles, setSelectFiles] = useState([]); const [uploadedFiles, setUploadedFiles] = useState([]); - const { data: allTags = [] } = useRequest2(getMarketPlaceToolTags, { + const { data: allTags = [] } = useRequest(getMarketPlaceToolTags, { manual: false }); @@ -113,7 +113,7 @@ const ImportPluginModal = ({ } }; - const { runAsync: handleBatchUpload, loading: uploadLoading } = useRequest2( + const { runAsync: handleBatchUpload, loading: uploadLoading } = useRequest( async (files: SelectFileItemType[]) => { const newUploadedFiles: UploadedPluginFile[] = files.map((f) => ({ ...f, @@ -163,7 +163,7 @@ const ImportPluginModal = ({ setSelectFiles((prev) => prev.filter((f) => f.name !== file.name)); }; - const { runAsync: handleConfirmImport, loading: confirmLoading } = useRequest2( + const { runAsync: handleConfirmImport, loading: confirmLoading } = useRequest( async () => { const successToolIds = uploadedFiles .filter((file) => (file.status === 'success' || file.status === 'duplicate') && file.toolId) diff --git a/projects/app/src/pageComponents/config/TagManageModal.tsx b/projects/app/src/pageComponents/config/TagManageModal.tsx index a01f520d4d..5f0fad8df4 100644 --- a/projects/app/src/pageComponents/config/TagManageModal.tsx +++ b/projects/app/src/pageComponents/config/TagManageModal.tsx @@ -1,7 +1,7 @@ import { Box, Button, Flex, Input, ModalBody, ModalFooter } from '@chakra-ui/react'; import type { SystemPluginToolTagType } from '@fastgpt/global/core/plugin/type'; import MyModal from '@fastgpt/web/components/common/MyModal'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useEffect, useRef, useState } from 'react'; import MyIcon from '@fastgpt/web/components/common/Icon'; import PopoverConfirm from '@fastgpt/web/components/common/MyPopover/PopoverConfirm'; @@ -41,7 +41,7 @@ const TagManageModal = ({ onClose }: { onClose: () => void }) => { data: tags = [], run: loadTags, loading - } = useRequest2(getPluginToolTags, { + } = useRequest(getPluginToolTags, { manual: false }); useEffect(() => { @@ -54,7 +54,7 @@ const TagManageModal = ({ onClose }: { onClose: () => void }) => { } }, [editingTagId]); - const { runAsync: handleAddTag } = useRequest2( + const { runAsync: handleAddTag } = useRequest( async (tagName: string) => { await createPluginToolTag({ tagName }); }, @@ -67,7 +67,7 @@ const TagManageModal = ({ onClose }: { onClose: () => void }) => { } ); - const { runAsync: handleUpdateTag } = useRequest2( + const { runAsync: handleUpdateTag } = useRequest( async (tagId: string, tagName: string) => { await updatePluginToolTag({ tagId, tagName }); }, @@ -80,7 +80,7 @@ const TagManageModal = ({ onClose }: { onClose: () => void }) => { } ); - const { runAsync: handleDeleteTag } = useRequest2( + const { runAsync: handleDeleteTag } = useRequest( async (tag: SystemPluginToolTagType) => { await deletePluginToolTag({ tagId: tag.tagId }); }, @@ -91,7 +91,7 @@ const TagManageModal = ({ onClose }: { onClose: () => void }) => { } ); - const { runAsync: handleUpdateOrder } = useRequest2( + const { runAsync: handleUpdateOrder } = useRequest( async (newList: SystemPluginToolTagType[]) => { await updatePluginToolTagOrder({ tags: newList }); }, diff --git a/projects/app/src/pageComponents/config/tool/SystemToolConfigModal.tsx b/projects/app/src/pageComponents/config/tool/SystemToolConfigModal.tsx index b1deb39e66..d593737183 100644 --- a/projects/app/src/pageComponents/config/tool/SystemToolConfigModal.tsx +++ b/projects/app/src/pageComponents/config/tool/SystemToolConfigModal.tsx @@ -17,7 +17,7 @@ import { Td, TableContainer } from '@chakra-ui/react'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import MyModal from '@fastgpt/web/components/common/MyModal'; import { useForm } from 'react-hook-form'; import QuestionTip from '@fastgpt/web/components/common/MyTooltip/QuestionTip'; @@ -48,7 +48,7 @@ const SystemToolConfigModal = ({ const { register, reset, handleSubmit, setValue, watch, control } = useForm(); - const { data: tool, loading } = useRequest2(() => getAdminSystemToolDetail({ toolId }), { + const { data: tool, loading } = useRequest(() => getAdminSystemToolDetail({ toolId }), { onSuccess(res) { reset(res); }, @@ -66,7 +66,7 @@ const SystemToolConfigModal = ({ // 是否显示系统密钥配置 const showSystemSecretInput = !!inputList && inputList.length > 0; - const { runAsync: onSubmit, loading: submitting } = useRequest2( + const { runAsync: onSubmit, loading: submitting } = useRequest( (formData: AdminSystemToolDetailType) => putAdminUpdateTool({ ...formData, @@ -87,7 +87,7 @@ const SystemToolConfigModal = ({ } ); - const { runAsync: onDelete, loading: deleteLoading } = useRequest2( + const { runAsync: onDelete, loading: deleteLoading } = useRequest( () => deletePkgPlugin({ toolId: toolId.split('-')[1] }), { onSuccess() { diff --git a/projects/app/src/pageComponents/config/tool/ToolRow.tsx b/projects/app/src/pageComponents/config/tool/ToolRow.tsx index 1cfd1ca21d..238e81722b 100644 --- a/projects/app/src/pageComponents/config/tool/ToolRow.tsx +++ b/projects/app/src/pageComponents/config/tool/ToolRow.tsx @@ -6,7 +6,7 @@ import type { } from '@fastgpt/web/components/common/DndDrag'; import MyIcon from '@fastgpt/web/components/common/Icon'; import MyBox from '@fastgpt/web/components/common/MyBox'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; import { putAdminUpdateTool } from '@/web/core/plugin/admin/tool/api'; import React, { useRef, useState, useEffect } from 'react'; @@ -29,7 +29,7 @@ const ToolRow = ({ }) => { const { t, i18n } = useTranslation(); - const { runAsync: updateSystemTool, loading } = useRequest2( + const { runAsync: updateSystemTool, loading } = useRequest( async (updateFields: { defaultInstalled?: boolean; hasTokenFee?: boolean; diff --git a/projects/app/src/pageComponents/config/tool/WorkflowToolConfigModal.tsx b/projects/app/src/pageComponents/config/tool/WorkflowToolConfigModal.tsx index 13e8882531..c7035287ad 100644 --- a/projects/app/src/pageComponents/config/tool/WorkflowToolConfigModal.tsx +++ b/projects/app/src/pageComponents/config/tool/WorkflowToolConfigModal.tsx @@ -19,7 +19,7 @@ import { getUploadAvatarPresignedUrl } from '@/web/common/file/api'; import { useToast } from '@fastgpt/web/hooks/useToast'; import MyTooltip from '@fastgpt/web/components/common/MyTooltip'; import { getPluginToolTags } from '@/web/core/plugin/toolTag/api'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import PopoverConfirm from '@fastgpt/web/components/common/MyPopover/PopoverConfirm'; import MyNumberInput from '@fastgpt/web/components/common/Input/NumberInput'; import { PluginStatusEnum } from '@fastgpt/global/core/plugin/type'; @@ -81,7 +81,7 @@ const WorkflowToolConfigModal = ({ setValue('tagIds', selectedTags); }, [selectedTags, setValue]); - useRequest2( + useRequest( async () => { if (toolId) { const res = await getAdminSystemToolDetail({ toolId }); @@ -120,7 +120,7 @@ const WorkflowToolConfigModal = ({ const [searchKey, setSearchKey] = useState(''); const [lastPluginId, setLastPluginId] = useState(''); - const { data: apps = [], loading: loadingPlugins } = useRequest2( + const { data: apps = [], loading: loadingPlugins } = useRequest( () => getAdminAllSystemAppTool({ searchKey }), { manual: false, @@ -128,7 +128,7 @@ const WorkflowToolConfigModal = ({ } ); - const { data: tags = [], loading: loadingTags } = useRequest2(getPluginToolTags, { + const { data: tags = [], loading: loadingTags } = useRequest(getPluginToolTags, { manual: false }); const pluginTypeSelectList = useMemo( @@ -160,7 +160,7 @@ const WorkflowToolConfigModal = ({ } }); - const { runAsync: onSubmit, loading: isSubmitting } = useRequest2( + const { runAsync: onSubmit, loading: isSubmitting } = useRequest( (data: UpdateToolBodyType) => { if (!data.associatedPluginId) { return Promise.reject(t('app:custom_plugin_associated_plugin_required')); @@ -189,7 +189,7 @@ const WorkflowToolConfigModal = ({ } ); - const { runAsync: onDelete, loading: isDeleting } = useRequest2(delAdminSystemTool, { + const { runAsync: onDelete, loading: isDeleting } = useRequest(delAdminSystemTool, { onSuccess() { toast({ title: t('app:custom_plugin_delete_success'), diff --git a/projects/app/src/pageComponents/dashboard/Container.tsx b/projects/app/src/pageComponents/dashboard/Container.tsx index 3b2f6d73d0..735fb5b126 100644 --- a/projects/app/src/pageComponents/dashboard/Container.tsx +++ b/projects/app/src/pageComponents/dashboard/Container.tsx @@ -9,7 +9,7 @@ import MyIcon from '@fastgpt/web/components/common/Icon'; import MyBox from '@fastgpt/web/components/common/MyBox'; import { navbarWidth } from '@/components/Layout'; import Avatar from '@fastgpt/web/components/common/Avatar'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getTemplateMarketItemList, getTemplateTagList } from '@/web/core/app/api/template'; import type { AppTemplateSchemaType, TemplateTypeSchemaType } from '@fastgpt/global/core/app/type'; import TeamPlanStatusCard from './TeamPlanStatusCard'; @@ -54,7 +54,7 @@ const DashboardContainer = ({ }; // Template market - const { data: templateTags = [], loading: isLoadingTemplatesTags } = useRequest2( + const { data: templateTags = [], loading: isLoadingTemplatesTags } = useRequest( () => currentTab === TabEnum.app_templates ? getTemplateTagList().then((res) => [ @@ -71,7 +71,7 @@ const DashboardContainer = ({ refreshDeps: [currentTab] } ); - const { data: templateData, loading: isLoadingTemplates } = useRequest2( + const { data: templateData, loading: isLoadingTemplates } = useRequest( () => currentTab === TabEnum.app_templates ? getTemplateMarketItemList({ type: appType }) diff --git a/projects/app/src/pageComponents/dashboard/agent/JsonImportModal.tsx b/projects/app/src/pageComponents/dashboard/agent/JsonImportModal.tsx index 8c46cfd138..bcda57183c 100644 --- a/projects/app/src/pageComponents/dashboard/agent/JsonImportModal.tsx +++ b/projects/app/src/pageComponents/dashboard/agent/JsonImportModal.tsx @@ -10,7 +10,7 @@ import { useMemo } from 'react'; import { getAppType } from '@fastgpt/global/core/app/utils'; import { useContextSelector } from 'use-context-selector'; import { AppListContext } from './context'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { postCreateApp } from '@/web/core/app/api'; import { useRouter } from 'next/router'; import { form2AppWorkflow } from '@/web/core/app/utils'; @@ -45,7 +45,7 @@ const JsonImportModal = ({ onClose }: { onClose: () => void }) => { }); const workflowStr = watch('workflowStr'); - const { loading: isFetching } = useRequest2( + const { loading: isFetching } = useRequest( async () => { const url = getUtmWorkflow(); if (!url) return; @@ -92,7 +92,7 @@ const JsonImportModal = ({ onClose }: { onClose: () => void }) => { } }, [avatar, workflowStr]); - const { runAsync: onSubmit, loading: isCreating } = useRequest2( + const { runAsync: onSubmit, loading: isCreating } = useRequest( async ({ name, workflowStr }: FormType) => { const { workflow, appType } = await (async () => { try { diff --git a/projects/app/src/pageComponents/dashboard/agent/List.tsx b/projects/app/src/pageComponents/dashboard/agent/List.tsx index 7d7263e3ae..1e1a133541 100644 --- a/projects/app/src/pageComponents/dashboard/agent/List.tsx +++ b/projects/app/src/pageComponents/dashboard/agent/List.tsx @@ -8,7 +8,7 @@ import Avatar from '@fastgpt/web/components/common/Avatar'; import PermissionIconText from '@/components/support/permission/IconText'; import { useTranslation } from 'next-i18next'; import MyBox from '@fastgpt/web/components/common/MyBox'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useContextSelector } from 'use-context-selector'; import { AppListContext } from './context'; import { @@ -89,7 +89,7 @@ const List = () => { const parentApp = useMemo(() => myApps.find((item) => item._id === parentId), [parentId, myApps]); - const { runAsync: onPutAppById } = useRequest2(putAppById, { + const { runAsync: onPutAppById } = useRequest(putAppById, { onSuccess() { loadMyApps(); } @@ -109,7 +109,7 @@ const List = () => { }); const { lastChatAppId, setLastChatAppId } = useChatStore(); - const { runAsync: onclickDelApp } = useRequest2( + const { runAsync: onclickDelApp } = useRequest( (id: string) => { if (id === lastChatAppId) { setLastChatAppId(''); @@ -131,7 +131,7 @@ const List = () => { const { openConfirm: openConfirmCopy, ConfirmModal: ConfirmCopyModal } = useConfirm({ content: t('app:confirm_copy_app_tip') }); - const { runAsync: onclickCopy } = useRequest2(postCopyApp, { + const { runAsync: onclickCopy } = useRequest(postCopyApp, { onSuccess({ appId }) { router.push(`/app/detail?appId=${appId}`); loadMyApps(); @@ -139,7 +139,7 @@ const List = () => { successToast: t('app:create_copy_success') }); - const { runAsync: onResumeInheritPermission } = useRequest2( + const { runAsync: onResumeInheritPermission } = useRequest( () => { return resumeInheritPer(editPerApp!._id); }, diff --git a/projects/app/src/pageComponents/dashboard/agent/TemplateCreatePanel.tsx b/projects/app/src/pageComponents/dashboard/agent/TemplateCreatePanel.tsx index 9c41f1019e..204a29a123 100644 --- a/projects/app/src/pageComponents/dashboard/agent/TemplateCreatePanel.tsx +++ b/projects/app/src/pageComponents/dashboard/agent/TemplateCreatePanel.tsx @@ -13,7 +13,7 @@ import { } from '@chakra-ui/react'; import { AppTypeEnum } from '@fastgpt/global/core/app/constants'; import Avatar from '@fastgpt/web/components/common/Avatar'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { useTranslation } from 'next-i18next'; import { useRouter } from 'next/router'; @@ -45,7 +45,7 @@ const TemplateCreatePanel = ({ type }: { type: AppTypeEnum | 'all' }) => { runAsync: fetchTemplates, data: templateData, loading: isFetchingTemplates - } = useRequest2( + } = useRequest( (ids?: string[]) => { const excludeIds = (() => { try { @@ -68,7 +68,7 @@ const TemplateCreatePanel = ({ type }: { type: AppTypeEnum | 'all' }) => { const [creatingTemplateId, setCreatingTemplateId] = useState(null); - const { runAsync: handleCreateFromTemplate } = useRequest2( + const { runAsync: handleCreateFromTemplate } = useRequest( async (templateId: string) => { setCreatingTemplateId(templateId); const templateDetail = await getTemplateMarketItemDetail(templateId); diff --git a/projects/app/src/pageComponents/dashboard/agent/context.tsx b/projects/app/src/pageComponents/dashboard/agent/context.tsx index ff370b4f8b..bdabcdaf12 100644 --- a/projects/app/src/pageComponents/dashboard/agent/context.tsx +++ b/projects/app/src/pageComponents/dashboard/agent/context.tsx @@ -1,7 +1,7 @@ import React, { type ReactNode, useCallback, useEffect, useState } from 'react'; import { createContext } from 'use-context-selector'; import { useRouter } from 'next/router'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getAppDetailById, getMyApps, putAppById } from '@/web/core/app/api'; import { type AppDetailType, type AppListItemType } from '@fastgpt/global/core/app/type'; import { getAppFolderPath } from '@/web/core/app/api/app'; @@ -70,7 +70,7 @@ const AppListContextProvider = ({ children }: { children: ReactNode }) => { data = [], runAsync: loadMyApps, loading: isFetchingApps - } = useRequest2( + } = useRequest( () => { const formatType = (() => { // chat page show all apps @@ -112,7 +112,7 @@ const AppListContextProvider = ({ children }: { children: ReactNode }) => { } ); - const { data: paths = [], runAsync: refetchPaths } = useRequest2( + const { data: paths = [], runAsync: refetchPaths } = useRequest( () => getAppFolderPath({ sourceId: parentId, type: 'current' }), { manual: false, @@ -120,7 +120,7 @@ const AppListContextProvider = ({ children }: { children: ReactNode }) => { } ); - const { data: folderDetail, runAsync: refetchFolderDetail } = useRequest2( + const { data: folderDetail, runAsync: refetchFolderDetail } = useRequest( () => { if (parentId) return getAppDetailById(parentId); return Promise.resolve(null); @@ -131,7 +131,7 @@ const AppListContextProvider = ({ children }: { children: ReactNode }) => { } ); - const { runAsync: onUpdateApp } = useRequest2((id: string, data: AppUpdateParams) => + const { runAsync: onUpdateApp } = useRequest((id: string, data: AppUpdateParams) => putAppById(id, data).then(async (res) => { await Promise.all([refetchFolderDetail(), refetchPaths(), loadMyApps()]); return res; diff --git a/projects/app/src/pageComponents/dashboard/mcp/EditModal.tsx b/projects/app/src/pageComponents/dashboard/mcp/EditModal.tsx index d8517087c0..41486eb1dc 100644 --- a/projects/app/src/pageComponents/dashboard/mcp/EditModal.tsx +++ b/projects/app/src/pageComponents/dashboard/mcp/EditModal.tsx @@ -28,7 +28,7 @@ import EmptyTip from '@fastgpt/web/components/common/EmptyTip'; import SearchInput from '@fastgpt/web/components/common/Input/SearchInput'; import Path from '@/components/common/folder/Path'; import Avatar from '@fastgpt/web/components/common/Avatar'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getAppBasicInfoByIds, getMyApps } from '@/web/core/app/api'; import { type ParentIdType } from '@fastgpt/global/common/parentFolder/type'; import { getAppFolderPath } from '@/web/core/app/api/app'; @@ -70,7 +70,7 @@ const SelectAppModal = ({ >([]); // Load selected app - useRequest2(() => getAppBasicInfoByIds(selectedApps.map((item) => item.appId)), { + useRequest(() => getAppBasicInfoByIds(selectedApps.map((item) => item.appId)), { manual: false, onSuccess: (data) => { setSelectedList( @@ -89,7 +89,7 @@ const SelectAppModal = ({ const [searchKey, setSearchKey] = useState(''); const [parentId, setParentId] = useState(''); - const { data: apps = [], loading: loadingApps } = useRequest2( + const { data: apps = [], loading: loadingApps } = useRequest( () => getMyApps({ searchKey, @@ -101,7 +101,7 @@ const SelectAppModal = ({ throttleWait: 200 } ); - const { data: paths = [] } = useRequest2( + const { data: paths = [] } = useRequest( () => getAppFolderPath({ sourceId: parentId, type: 'current' }), { manual: false, @@ -277,7 +277,7 @@ const EditMcpModal = ({ name: 'apps' }); - const { runAsync: createMcp, loading: loadingCreate } = useRequest2( + const { runAsync: createMcp, loading: loadingCreate } = useRequest( (data: EditMcForm) => postCreateMcpServer({ name: data.name, @@ -294,7 +294,7 @@ const EditMcpModal = ({ onSuccess } ); - const { runAsync: updateMcp, loading: loadingUpdate } = useRequest2( + const { runAsync: updateMcp, loading: loadingUpdate } = useRequest( (data: EditMcForm) => putUpdateMcpServer({ id: data.id!, diff --git a/projects/app/src/pageComponents/dataset/ApiDatasetForm.tsx b/projects/app/src/pageComponents/dataset/ApiDatasetForm.tsx index 6447c4091d..da448f4dcc 100644 --- a/projects/app/src/pageComponents/dataset/ApiDatasetForm.tsx +++ b/projects/app/src/pageComponents/dataset/ApiDatasetForm.tsx @@ -9,7 +9,7 @@ import type { GetResourceFolderListProps, ParentIdType } from '@fastgpt/global/common/parentFolder/type'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import type { GetApiDatasetCataLogProps } from '@/pages/api/core/dataset/apiDataset/getCatalog'; import MyBox from '@fastgpt/web/components/common/MyBox'; import { useBoolean, useMemoizedFn, useMount } from 'ahooks'; @@ -70,7 +70,7 @@ const ApiDatasetForm = ({ ]); // Unified function to get the current path - const { loading: isFetching } = useRequest2( + const { loading: isFetching } = useRequest( async () => { if ( !datasetId && @@ -292,7 +292,7 @@ const BaseUrlSelector = ({ selectId, server, onConfirm, onClose }: Props) => { const [requestingIdList, setRequestingIdList] = useState([]); const [folderList, setFolderList] = useState([]); - const { runAsync: requestServer } = useRequest2(async (e: GetResourceFolderListProps) => { + const { runAsync: requestServer } = useRequest(async (e: GetResourceFolderListProps) => { if (requestingIdList.includes(e.parentId)) return Promise.reject(null); setRequestingIdList((state) => [...state, e.parentId]); @@ -400,7 +400,7 @@ const BaseUrlSelector = ({ selectId, server, onConfirm, onClose }: Props) => { } ); - const { runAsync: onConfirmSelect, loading: confirming } = useRequest2( + const { runAsync: onConfirmSelect, loading: confirming } = useRequest( () => { if (selectedId) { return onConfirm(selectedId === rootId ? null : selectedId); diff --git a/projects/app/src/pageComponents/dataset/EditFolderModal.tsx b/projects/app/src/pageComponents/dataset/EditFolderModal.tsx index 06237643ab..c4340a9d84 100644 --- a/projects/app/src/pageComponents/dataset/EditFolderModal.tsx +++ b/projects/app/src/pageComponents/dataset/EditFolderModal.tsx @@ -30,16 +30,18 @@ const EditFolderModal = ({ [isEdit, t] ); - const { mutate: onSave, isLoading } = useRequest({ - mutationFn: () => { + const { runAsync: onSave, loading: isLoading } = useRequest( + () => { const val = inputRef.current?.value; if (!val) return Promise.resolve(''); return editCallback(val); }, - onSuccess: () => { - onClose(); + { + onSuccess: () => { + onClose(); + } } - }); + ); return ( diff --git a/projects/app/src/pageComponents/dataset/detail/CollectionCard/BackupImportModal.tsx b/projects/app/src/pageComponents/dataset/detail/CollectionCard/BackupImportModal.tsx index 830a79ac56..ecb4bcb71b 100644 --- a/projects/app/src/pageComponents/dataset/detail/CollectionCard/BackupImportModal.tsx +++ b/projects/app/src/pageComponents/dataset/detail/CollectionCard/BackupImportModal.tsx @@ -5,7 +5,7 @@ import { Box, Button, HStack, ModalBody, ModalFooter, VStack } from '@chakra-ui/ import MyIcon from '@fastgpt/web/components/common/Icon'; import MyIconButton from '@fastgpt/web/components/common/Icon/button'; import { postBackupDatasetCollection } from '@/web/core/dataset/api'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { DatasetPageContext } from '@/web/core/dataset/context/datasetPageContext'; import { useContextSelector } from 'use-context-selector'; import LightTip from '@fastgpt/web/components/common/LightTip'; @@ -24,7 +24,7 @@ const BackupImportModal = ({ const [selectFiles, setSelectFiles] = useState([]); const [percent, setPercent] = useState(0); - const { runAsync: onBackupImport, loading: isBackupLoading } = useRequest2( + const { runAsync: onBackupImport, loading: isBackupLoading } = useRequest( async () => { await postBackupDatasetCollection({ datasetId, diff --git a/projects/app/src/pageComponents/dataset/detail/CollectionCard/Context.tsx b/projects/app/src/pageComponents/dataset/detail/CollectionCard/Context.tsx index 446e2e650c..c514015fec 100644 --- a/projects/app/src/pageComponents/dataset/detail/CollectionCard/Context.tsx +++ b/projects/app/src/pageComponents/dataset/detail/CollectionCard/Context.tsx @@ -10,7 +10,7 @@ import { import { useTranslation } from 'next-i18next'; import { createContext, useContextSelector } from 'use-context-selector'; import { DatasetTypeEnum } from '@fastgpt/global/core/dataset/constants'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useDisclosure } from '@chakra-ui/react'; import { useToast } from '@fastgpt/web/hooks/useToast'; import { checkTeamWebSyncLimit } from '@/web/support/user/team/api'; @@ -132,7 +132,7 @@ const CollectionPageContextProvider = ({ children }: { children: ReactNode }) => onClose: onCloseWebsiteModal } = useDisclosure(); - const { runAsync: onUpdateDatasetWebsiteConfig } = useRequest2( + const { runAsync: onUpdateDatasetWebsiteConfig } = useRequest( async (websiteConfig: WebsiteConfigFormType) => { await updateDataset({ id: datasetId, diff --git a/projects/app/src/pageComponents/dataset/detail/CollectionCard/Header.tsx b/projects/app/src/pageComponents/dataset/detail/CollectionCard/Header.tsx index 6b935bc08f..bc8a29d420 100644 --- a/projects/app/src/pageComponents/dataset/detail/CollectionCard/Header.tsx +++ b/projects/app/src/pageComponents/dataset/detail/CollectionCard/Header.tsx @@ -8,7 +8,7 @@ import { import { useTranslation } from 'next-i18next'; import MyIcon from '@fastgpt/web/components/common/Icon'; import MyInput from '@/components/MyInput'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useRouter } from 'next/router'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import MyMenu from '@fastgpt/web/components/common/MyMenu'; @@ -60,7 +60,7 @@ const Header = ({ hasTrainingData }: { hasTrainingData: boolean }) => { openDatasetSyncConfirm } = useContextSelector(CollectionPageContext, (v) => v); - const { data: paths = [] } = useRequest2(() => getDatasetCollectionPathById(parentId), { + const { data: paths = [] } = useRequest(() => getDatasetCollectionPathById(parentId), { refreshDeps: [parentId], manual: false }); @@ -92,7 +92,7 @@ const Header = ({ hasTrainingData }: { hasTrainingData: boolean }) => { onClose: onCloseTemplateImportModal } = useDisclosure(); - const { runAsync: onCreateCollection } = useRequest2( + const { runAsync: onCreateCollection } = useRequest( async ({ name, type }: { name: string; type: DatasetCollectionTypeEnum }) => { const id = await postDatasetCollection({ parentId, diff --git a/projects/app/src/pageComponents/dataset/detail/CollectionCard/TagManageModal.tsx b/projects/app/src/pageComponents/dataset/detail/CollectionCard/TagManageModal.tsx index ac9d7cf2b5..966bd0e9c3 100644 --- a/projects/app/src/pageComponents/dataset/detail/CollectionCard/TagManageModal.tsx +++ b/projects/app/src/pageComponents/dataset/detail/CollectionCard/TagManageModal.tsx @@ -15,7 +15,7 @@ import { postAddTagsToCollections, updateDatasetCollectionTag } from '@/web/core/dataset/api'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import MyInput from '@/components/MyInput'; import { type DatasetTagType } from '@fastgpt/global/core/dataset/type'; import { useScrollPagination } from '@fastgpt/web/hooks/useScrollPagination'; @@ -54,7 +54,7 @@ const TagManageModal = ({ onClose }: { onClose: () => void }) => { } }, [currentEditTag]); - const { runAsync: onDeleteCollectionTag } = useRequest2( + const { runAsync: onDeleteCollectionTag } = useRequest( (tag: string) => delDatasetCollectionTag({ datasetId: datasetDetail._id, @@ -71,7 +71,7 @@ const TagManageModal = ({ onClose }: { onClose: () => void }) => { } ); - const { runAsync: onUpdateCollectionTag } = useRequest2( + const { runAsync: onUpdateCollectionTag } = useRequest( async (tag: DatasetTagType) => { return updateDatasetCollectionTag({ datasetId: datasetDetail._id, @@ -88,7 +88,7 @@ const TagManageModal = ({ onClose }: { onClose: () => void }) => { } ); - const { runAsync: onSaveCollectionTag } = useRequest2( + const { runAsync: onSaveCollectionTag } = useRequest( async ({ tag, originCollectionIds, @@ -145,7 +145,7 @@ const TagManageModal = ({ onClose }: { onClose: () => void }) => { } ); - const { data: tagUsages } = useRequest2(() => getTagUsage(datasetDetail._id), { + const { data: tagUsages } = useRequest(() => getTagUsage(datasetDetail._id), { manual: false, refreshDeps: [collections] }); diff --git a/projects/app/src/pageComponents/dataset/detail/CollectionCard/TemplateImportModal.tsx b/projects/app/src/pageComponents/dataset/detail/CollectionCard/TemplateImportModal.tsx index 7d18a20503..113825eec0 100644 --- a/projects/app/src/pageComponents/dataset/detail/CollectionCard/TemplateImportModal.tsx +++ b/projects/app/src/pageComponents/dataset/detail/CollectionCard/TemplateImportModal.tsx @@ -6,7 +6,7 @@ import FileSelector, { type SelectFileItemType } from '@/components/Select/FileS import MyIcon from '@fastgpt/web/components/common/Icon'; import MyIconButton from '@fastgpt/web/components/common/Icon/button'; import { postTemplateDatasetCollection } from '@/web/core/dataset/api'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { DatasetPageContext } from '@/web/core/dataset/context/datasetPageContext'; import { useContextSelector } from 'use-context-selector'; import { getDocPath } from '@/web/common/system/doc'; @@ -25,7 +25,7 @@ const TemplateImportModal = ({ const [selectFiles, setSelectFiles] = useState([]); const [percent, setPercent] = useState(0); - const { runAsync: onImport, loading: isImporting } = useRequest2( + const { runAsync: onImport, loading: isImporting } = useRequest( async () => { await postTemplateDatasetCollection({ datasetId, diff --git a/projects/app/src/pageComponents/dataset/detail/CollectionCard/TrainingStates.tsx b/projects/app/src/pageComponents/dataset/detail/CollectionCard/TrainingStates.tsx index ca6937f69a..c0810ec2e1 100644 --- a/projects/app/src/pageComponents/dataset/detail/CollectionCard/TrainingStates.tsx +++ b/projects/app/src/pageComponents/dataset/detail/CollectionCard/TrainingStates.tsx @@ -16,7 +16,7 @@ import { useTranslation } from 'next-i18next'; import MyTag from '@fastgpt/web/components/common/Tag/index'; import FillRowTabs from '@fastgpt/web/components/common/Tabs/FillRowTabs'; import { useMemo, useState } from 'react'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { deleteTrainingData, getDatasetCollectionTrainingDetail, @@ -316,7 +316,7 @@ const ErrorView = ({ EmptyTip: }); - const { runAsync: getData, loading: getDataLoading } = useRequest2( + const { runAsync: getData, loading: getDataLoading } = useRequest( (data: { datasetId: string; collectionId: string; dataId: string }) => { return getTrainingDataDetail(data); }, @@ -327,7 +327,7 @@ const ErrorView = ({ } } ); - const { runAsync: deleteData, loading: deleteLoading } = useRequest2( + const { runAsync: deleteData, loading: deleteLoading } = useRequest( (data: { datasetId: string; collectionId: string; dataId: string }) => { return deleteTrainingData(data); }, @@ -338,7 +338,7 @@ const ErrorView = ({ } } ); - const { runAsync: updateData, loading: updateLoading } = useRequest2( + const { runAsync: updateData, loading: updateLoading } = useRequest( (data: { datasetId: string; collectionId: string; dataId: string; q?: string; a?: string }) => { return updateTrainingData(data); }, @@ -522,14 +522,14 @@ const TrainingStates = ({ data: trainingDetail, loading, runAsync: refreshTrainingDetail - } = useRequest2(() => getDatasetCollectionTrainingDetail(collectionId), { + } = useRequest(() => getDatasetCollectionTrainingDetail(collectionId), { pollingInterval: 5000, pollingWhenHidden: false, manual: false }); // All retry logic - const { runAsync: handleRetryAll, loading: retrying } = useRequest2( + const { runAsync: handleRetryAll, loading: retrying } = useRequest( () => updateTrainingData({ datasetId, collectionId }), { manual: true, diff --git a/projects/app/src/pageComponents/dataset/detail/CollectionCard/index.tsx b/projects/app/src/pageComponents/dataset/detail/CollectionCard/index.tsx index 020679e945..71bf210438 100644 --- a/projects/app/src/pageComponents/dataset/detail/CollectionCard/index.tsx +++ b/projects/app/src/pageComponents/dataset/detail/CollectionCard/index.tsx @@ -23,7 +23,7 @@ import { import { useConfirm } from '@fastgpt/web/hooks/useConfirm'; import { useTranslation } from 'next-i18next'; import MyIcon from '@fastgpt/web/components/common/Icon'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useRouter } from 'next/router'; import MyMenu from '@fastgpt/web/components/common/MyMenu'; import { useEditTitle } from '@/web/common/hooks/useEditTitle'; @@ -124,7 +124,7 @@ const CollectionCard = () => { const { onOpenModal: onOpenEditTitleModal, EditModal: EditTitleModal } = useEditTitle({ title: t('common:Rename') }); - const { runAsync: onUpdateCollection, loading: isUpdating } = useRequest2( + const { runAsync: onUpdateCollection, loading: isUpdating } = useRequest( putDatasetCollectionById, { onSuccess() { @@ -138,7 +138,7 @@ const CollectionCard = () => { content: t('common:dataset.Confirm to delete the file'), type: 'delete' }); - const { runAsync: onDelCollection } = useRequest2( + const { runAsync: onDelCollection } = useRequest( (collectionIds: string[]) => { return delDatasetCollectionById({ collectionIds @@ -156,7 +156,7 @@ const CollectionCard = () => { const { openConfirm: openSyncConfirm, ConfirmModal: ConfirmSyncModal } = useConfirm({ content: t('dataset:collection_sync_confirm_tip') }); - const { runAsync: onclickStartSync, loading: isSyncing } = useRequest2(postLinkCollectionSync, { + const { runAsync: onclickStartSync, loading: isSyncing } = useRequest(postLinkCollectionSync, { onSuccess(res: DatasetCollectionSyncResultEnum) { getData(pageNum); toast({ @@ -172,7 +172,7 @@ const CollectionCard = () => { [formatCollections] ); - useRequest2( + useRequest( async () => { if (datasetDetail.status !== DatasetStatusEnum.active) { loadDatasetDetail(datasetDetail._id); diff --git a/projects/app/src/pageComponents/dataset/detail/DataCard.tsx b/projects/app/src/pageComponents/dataset/detail/DataCard.tsx index 81a73e5049..f1cfb7ea37 100644 --- a/projects/app/src/pageComponents/dataset/detail/DataCard.tsx +++ b/projects/app/src/pageComponents/dataset/detail/DataCard.tsx @@ -31,7 +31,7 @@ import { DatasetCollectionTypeEnum, ImportDataSourceEnum } from '@fastgpt/global/core/dataset/constants'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import TrainingStates from './CollectionCard/TrainingStates'; import { getTextValidLength } from '@fastgpt/global/common/string/utils'; import PopoverConfirm from '@fastgpt/web/components/common/MyPopover/PopoverConfirm'; @@ -88,7 +88,7 @@ const DataCard = () => { const [editDataId, setEditDataId] = useState(); // Get collection info - const { data: collection, runAsync: reloadCollection } = useRequest2( + const { data: collection, runAsync: reloadCollection } = useRequest( () => getDatasetCollectionById(collectionId), { refreshDeps: [collectionId], @@ -129,7 +129,7 @@ const DataCard = () => { } }); - const { runAsync: onExportAllChunks, loading: isExportChunksLoading } = useRequest2( + const { runAsync: onExportAllChunks, loading: isExportChunksLoading } = useRequest( async (collectionId: string) => { await downloadFetch({ url: '/api/core/dataset/collection/export', diff --git a/projects/app/src/pageComponents/dataset/detail/Import/commonProgress/PreviewData.tsx b/projects/app/src/pageComponents/dataset/detail/Import/commonProgress/PreviewData.tsx index fa670401fc..4fa4aae8c7 100644 --- a/projects/app/src/pageComponents/dataset/detail/Import/commonProgress/PreviewData.tsx +++ b/projects/app/src/pageComponents/dataset/detail/Import/commonProgress/PreviewData.tsx @@ -6,7 +6,7 @@ import { DatasetImportContext } from '../Context'; import MyIcon from '@fastgpt/web/components/common/Icon'; import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; import EmptyTip from '@fastgpt/web/components/common/EmptyTip'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { ImportDataSourceEnum } from '@fastgpt/global/core/dataset/constants'; import { splitText2Chunks } from '@fastgpt/global/common/string/textSplitter'; import { getPreviewChunks } from '@/web/core/dataset/api'; @@ -32,7 +32,7 @@ const PreviewData = () => { const [previewFile, setPreviewFile] = useState(); - const { data = { chunks: [], total: 0 }, loading: isLoading } = useRequest2( + const { data = { chunks: [], total: 0 }, loading: isLoading } = useRequest( async () => { if (!previewFile) return { chunks: [], total: 0 }; diff --git a/projects/app/src/pageComponents/dataset/detail/Import/commonProgress/Upload.tsx b/projects/app/src/pageComponents/dataset/detail/Import/commonProgress/Upload.tsx index 36c94bb173..ed424b9862 100644 --- a/projects/app/src/pageComponents/dataset/detail/Import/commonProgress/Upload.tsx +++ b/projects/app/src/pageComponents/dataset/detail/Import/commonProgress/Upload.tsx @@ -17,7 +17,7 @@ import { import { ImportDataSourceEnum } from '@fastgpt/global/core/dataset/constants'; import { useTranslation } from 'next-i18next'; import MyIcon from '@fastgpt/web/components/common/Icon'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useToast } from '@fastgpt/web/hooks/useToast'; import { useRouter } from 'next/router'; import { @@ -75,7 +75,7 @@ const Upload = () => { } }, [waitingFilesCount, totalFilesCount, allFinished, t]); - const { runAsync: startUpload, loading: isLoading } = useRequest2( + const { runAsync: startUpload, loading: isLoading } = useRequest( async ({ customPdfParse, webSelector, ...data }: ImportFormType) => { if (sources.length === 0) return; const filterWaitingSources = sources.filter((item) => item.createStatus === 'waiting'); diff --git a/projects/app/src/pageComponents/dataset/detail/Import/diffSource/APIDataset.tsx b/projects/app/src/pageComponents/dataset/detail/Import/diffSource/APIDataset.tsx index 2fe0fcff44..4b29752612 100644 --- a/projects/app/src/pageComponents/dataset/detail/Import/diffSource/APIDataset.tsx +++ b/projects/app/src/pageComponents/dataset/detail/Import/diffSource/APIDataset.tsx @@ -5,7 +5,7 @@ import dynamic from 'next/dynamic'; import Loading from '@fastgpt/web/components/common/MyLoading'; import { Box, Button, Checkbox, Flex } from '@chakra-ui/react'; import { DatasetPageContext } from '@/web/core/dataset/context/datasetPageContext'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getApiDatasetFileList, getApiDatasetFileListExistId } from '@/web/core/dataset/api'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { useTranslation } from 'next-i18next'; @@ -57,7 +57,7 @@ const CustomAPIFileInput = () => { const [searchKey, setSearchKey] = useState(''); - const { data: fileList = [], loading } = useRequest2( + const { data: fileList = [], loading } = useRequest( async () => { return getApiDatasetFileList({ datasetId: datasetDetail._id, @@ -72,7 +72,7 @@ const CustomAPIFileInput = () => { } ); - const { data: existIdList = new Set() } = useRequest2( + const { data: existIdList = new Set() } = useRequest( async () => { return new Set(await getApiDatasetFileListExistId({ datasetId: datasetDetail._id })); }, @@ -92,7 +92,7 @@ const CustomAPIFileInput = () => { } }); - const { runAsync: onclickNext, loading: onNextLoading } = useRequest2( + const { runAsync: onclickNext, loading: onNextLoading } = useRequest( async () => { const finalSelectedFiles: APIFileItemType[] = await (async () => { if (isSelectAll) { diff --git a/projects/app/src/pageComponents/dataset/detail/Import/diffSource/FileLocal.tsx b/projects/app/src/pageComponents/dataset/detail/Import/diffSource/FileLocal.tsx index 9828280a71..8cfd64c7aa 100644 --- a/projects/app/src/pageComponents/dataset/detail/Import/diffSource/FileLocal.tsx +++ b/projects/app/src/pageComponents/dataset/detail/Import/diffSource/FileLocal.tsx @@ -8,7 +8,7 @@ import dynamic from 'next/dynamic'; import { RenderUploadFiles } from '../components/RenderFiles'; import { useContextSelector } from 'use-context-selector'; import { DatasetImportContext } from '../Context'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getErrText } from '@fastgpt/global/common/error/utils'; import { formatFileSize } from '@fastgpt/global/common/file/tools'; import { getFileIcon } from '@fastgpt/global/common/file/icon'; @@ -61,7 +61,7 @@ const SelectFile = React.memo(function SelectFile() { goToNext(); }, [goToNext]); - const { runAsync: onSelectFiles, loading: uploading } = useRequest2( + const { runAsync: onSelectFiles, loading: uploading } = useRequest( async (files: SelectFileItemType[]) => { { await Promise.all( diff --git a/projects/app/src/pageComponents/dataset/detail/Import/diffSource/ImageDataset.tsx b/projects/app/src/pageComponents/dataset/detail/Import/diffSource/ImageDataset.tsx index 20d1f82fdb..d813bc9af2 100644 --- a/projects/app/src/pageComponents/dataset/detail/Import/diffSource/ImageDataset.tsx +++ b/projects/app/src/pageComponents/dataset/detail/Import/diffSource/ImageDataset.tsx @@ -10,7 +10,7 @@ import FileSelector, { type SelectFileItemType } from '../components/FileSelecto import type { ImportSourceItemType } from '@/web/core/dataset/type'; import { getNanoid } from '@fastgpt/global/common/string/tools'; import MyIcon from '@fastgpt/web/components/common/Icon'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useContextSelector } from 'use-context-selector'; import { DatasetPageContext } from '@/web/core/dataset/context/datasetPageContext'; import { DatasetImportContext } from '../Context'; @@ -63,7 +63,7 @@ const SelectFile = React.memo(function SelectFile() { }); }; - const { runAsync: onCreate, loading: creating } = useRequest2( + const { runAsync: onCreate, loading: creating } = useRequest( async ({ name: collectionName }: { name: string }) => { return await createImageDatasetCollection({ parentId, diff --git a/projects/app/src/pageComponents/dataset/detail/Import/diffSource/ReTraining.tsx b/projects/app/src/pageComponents/dataset/detail/Import/diffSource/ReTraining.tsx index 33bc6f6ca6..30a9540885 100644 --- a/projects/app/src/pageComponents/dataset/detail/Import/diffSource/ReTraining.tsx +++ b/projects/app/src/pageComponents/dataset/detail/Import/diffSource/ReTraining.tsx @@ -5,7 +5,7 @@ import { DatasetImportContext, defaultFormData } from '../Context'; import dynamic from 'next/dynamic'; import DataProcess from '../commonProgress/DataProcess'; import { useRouter } from 'next/router'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getDatasetCollectionById } from '@/web/core/dataset/api'; import MyBox from '@fastgpt/web/components/common/MyBox'; import { getCollectionIcon } from '@fastgpt/global/core/dataset/utils'; @@ -26,7 +26,7 @@ const ReTraining = () => { const setSources = useContextSelector(DatasetImportContext, (v) => v.setSources); const processParamsForm = useContextSelector(DatasetImportContext, (v) => v.processParamsForm); - const { loading } = useRequest2(() => getDatasetCollectionById(collectionId), { + const { loading } = useRequest(() => getDatasetCollectionById(collectionId), { refreshDeps: [collectionId], manual: false, onSuccess: (collection) => { diff --git a/projects/app/src/pageComponents/dataset/detail/Info/components/EditApiServiceModal.tsx b/projects/app/src/pageComponents/dataset/detail/Info/components/EditApiServiceModal.tsx index 016528ce02..ccff24b9d0 100644 --- a/projects/app/src/pageComponents/dataset/detail/Info/components/EditApiServiceModal.tsx +++ b/projects/app/src/pageComponents/dataset/detail/Info/components/EditApiServiceModal.tsx @@ -2,7 +2,7 @@ import React from 'react'; import { ModalFooter, ModalBody, Button, Flex, Box } from '@chakra-ui/react'; import MyModal from '@fastgpt/web/components/common/MyModal/index'; import { useTranslation } from 'next-i18next'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useForm } from 'react-hook-form'; import { useToast } from '@fastgpt/web/hooks/useToast'; import ApiDatasetForm from '@/pageComponents/dataset/ApiDatasetForm'; @@ -38,7 +38,7 @@ const EditAPIDatasetInfoModal = ({ defaultValues: defaultForm }); - const { runAsync: onSave, loading } = useRequest2( + const { runAsync: onSave, loading } = useRequest( (data: EditAPIDatasetInfoFormType) => onEdit(data), { onSuccess: (res) => { diff --git a/projects/app/src/pageComponents/dataset/detail/Info/index.tsx b/projects/app/src/pageComponents/dataset/detail/Info/index.tsx index 4817ed77db..cceaa13848 100644 --- a/projects/app/src/pageComponents/dataset/detail/Info/index.tsx +++ b/projects/app/src/pageComponents/dataset/detail/Info/index.tsx @@ -6,7 +6,7 @@ import type { DatasetItemType } from '@fastgpt/global/core/dataset/type.d'; import Avatar from '@fastgpt/web/components/common/Avatar'; import { useTranslation } from 'next-i18next'; import { useSystemStore } from '@/web/common/system/useSystemStore'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import AIModelSelector from '@/components/Select/AIModelSelector'; import { postRebuildEmbedding } from '@/web/core/dataset/api'; import type { EmbeddingModelItemType } from '@fastgpt/global/core/ai/model.d'; @@ -66,7 +66,7 @@ const Info = ({ datasetId }: { datasetId: string }) => { title: t('common:action_confirm') }); - const { runAsync: onSave } = useRequest2( + const { runAsync: onSave } = useRequest( (data: DatasetItemType) => { return updateDataset({ id: datasetId, @@ -81,7 +81,7 @@ const Info = ({ datasetId }: { datasetId: string }) => { } ); - const { runAsync: onRebuilding } = useRequest2( + const { runAsync: onRebuilding } = useRequest( (vectorModel: EmbeddingModelItemType) => { return postRebuildEmbedding({ datasetId, @@ -98,7 +98,7 @@ const Info = ({ datasetId }: { datasetId: string }) => { } ); - const { runAsync: onEditBaseInfo } = useRequest2(updateDataset, { + const { runAsync: onEditBaseInfo } = useRequest(updateDataset, { onSuccess() { setEditedDataset(undefined); }, diff --git a/projects/app/src/pageComponents/dataset/detail/InputDataModal.tsx b/projects/app/src/pageComponents/dataset/detail/InputDataModal.tsx index daf54fa669..e13f55eb02 100644 --- a/projects/app/src/pageComponents/dataset/detail/InputDataModal.tsx +++ b/projects/app/src/pageComponents/dataset/detail/InputDataModal.tsx @@ -12,7 +12,7 @@ import MyIcon from '@fastgpt/web/components/common/Icon'; import MyModal from '@fastgpt/web/components/common/MyModal'; import MyTooltip from '@fastgpt/web/components/common/MyTooltip'; import { useTranslation } from 'next-i18next'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getCollectionIcon } from '@fastgpt/global/core/dataset/utils'; import type { DatasetDataIndexItemType } from '@fastgpt/global/core/dataset/type'; import DeleteIcon from '@fastgpt/web/components/common/Icon/delete'; @@ -76,7 +76,7 @@ const InputDataModal = ({ }); const imagePreivewUrl = watch('imagePreivewUrl'); - const { data: collection = defaultCollectionDetail, loading: initLoading } = useRequest2( + const { data: collection = defaultCollectionDetail, loading: initLoading } = useRequest( async () => { const [collection, dataItem] = await Promise.all([ getDatasetCollectionById(collectionId), @@ -118,7 +118,7 @@ const InputDataModal = ({ ); // Import new data - const { runAsync: sureImportData, loading: isImporting } = useRequest2( + const { runAsync: sureImportData, loading: isImporting } = useRequest( async (e: InputDataType) => { const data = { ...e }; @@ -155,7 +155,7 @@ const InputDataModal = ({ ); // Update data - const { runAsync: onUpdateData, loading: isUpdating } = useRequest2( + const { runAsync: onUpdateData, loading: isUpdating } = useRequest( async (e: InputDataType) => { if (!dataId) return Promise.reject(t('common:error.unKnow')); diff --git a/projects/app/src/pageComponents/dataset/detail/MetaDataCard.tsx b/projects/app/src/pageComponents/dataset/detail/MetaDataCard.tsx index c94afa8410..7d06929704 100644 --- a/projects/app/src/pageComponents/dataset/detail/MetaDataCard.tsx +++ b/projects/app/src/pageComponents/dataset/detail/MetaDataCard.tsx @@ -1,7 +1,7 @@ import React, { useMemo } from 'react'; import { Box, Flex, Button } from '@chakra-ui/react'; import { useTranslation } from 'next-i18next'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getDatasetCollectionById } from '@/web/core/dataset/api'; import { useRouter } from 'next/router'; import MyBox from '@fastgpt/web/components/common/MyBox'; @@ -26,7 +26,7 @@ const MetaDataCard = ({ datasetId }: { datasetId: string }) => { const readSource = getCollectionSourceAndOpen({ collectionId }); - const { data: collection, loading: isLoading } = useRequest2( + const { data: collection, loading: isLoading } = useRequest( () => getDatasetCollectionById(collectionId), { onError: () => { diff --git a/projects/app/src/pageComponents/dataset/detail/Test.tsx b/projects/app/src/pageComponents/dataset/detail/Test.tsx index 6e66e5757f..60aee79370 100644 --- a/projects/app/src/pageComponents/dataset/detail/Test.tsx +++ b/projects/app/src/pageComponents/dataset/detail/Test.tsx @@ -6,11 +6,9 @@ import { } from '@/web/core/dataset/store/searchTest'; import { postSearchText } from '@/web/core/dataset/api'; import MyIcon from '@fastgpt/web/components/common/Icon'; -import { useRequest, useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { formatTimeToChatTime } from '@fastgpt/global/common/string/time'; -import { getErrText } from '@fastgpt/global/common/error/utils'; import { useToast } from '@fastgpt/web/hooks/useToast'; -import { customAlphabet } from 'nanoid'; import MyTooltip from '@fastgpt/web/components/common/MyTooltip'; import { useTranslation } from 'next-i18next'; import { type SearchTestResponse } from '@/global/core/dataset/api'; @@ -94,7 +92,7 @@ const Test = ({ datasetId }: { datasetId: string }) => { onClose: onCloseSelectMode } = useDisclosure(); - const { runAsync: onTextTest, loading: textTestIsLoading } = useRequest2( + const { runAsync: onTextTest, loading: textTestIsLoading } = useRequest( ({ inputText, searchParams }: FormType) => postSearchText({ datasetId, text: inputText.trim(), ...searchParams }), { diff --git a/projects/app/src/pageComponents/dataset/detail/data/InsertImageModal.tsx b/projects/app/src/pageComponents/dataset/detail/data/InsertImageModal.tsx index 65dc78c347..ce517346ac 100644 --- a/projects/app/src/pageComponents/dataset/detail/data/InsertImageModal.tsx +++ b/projects/app/src/pageComponents/dataset/detail/data/InsertImageModal.tsx @@ -5,7 +5,7 @@ import { Box, Button, Flex, ModalBody, ModalFooter } from '@chakra-ui/react'; import FileSelector, { type SelectFileItemType } from '@/components/Select/FileSelectorBox'; import MyImage from '@/components/MyImage'; import MyIcon from '@fastgpt/web/components/common/Icon'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { insertImagesToCollection } from '@/web/core/dataset/image/api'; const fileType = '.jpg, .jpeg, .png'; @@ -43,7 +43,7 @@ const InsertImageModal = ({ }; const [uploadProgress, setUploadProgress] = useState(0); - const { runAsync: onInsertImages, loading: inserting } = useRequest2( + const { runAsync: onInsertImages, loading: inserting } = useRequest( async () => { return await insertImagesToCollection({ collectionId, diff --git a/projects/app/src/pageComponents/dataset/list/CreateModal.tsx b/projects/app/src/pageComponents/dataset/list/CreateModal.tsx index f3f07f6676..f4f8f13115 100644 --- a/projects/app/src/pageComponents/dataset/list/CreateModal.tsx +++ b/projects/app/src/pageComponents/dataset/list/CreateModal.tsx @@ -3,7 +3,7 @@ import { Box, Flex, Button, ModalFooter, ModalBody, Input, HStack } from '@chakr import { useForm } from 'react-hook-form'; import { useRouter } from 'next/router'; import { useSystemStore } from '@/web/common/system/useSystemStore'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import Avatar from '@fastgpt/web/components/common/Avatar'; import MyTooltip from '@fastgpt/web/components/common/MyTooltip'; import MyModal from '@fastgpt/web/components/common/MyModal'; @@ -75,7 +75,7 @@ const CreateModal = ({ }); /* create a new kb and router to it */ - const { runAsync: onclickCreate, loading: creating } = useRequest2( + const { runAsync: onclickCreate, loading: creating } = useRequest( async (data: CreateDatasetParams) => await postCreateDataset(data), { successToast: t('common:create_success'), diff --git a/projects/app/src/pageComponents/dataset/list/List.tsx b/projects/app/src/pageComponents/dataset/list/List.tsx index 5c30dd0eb1..f135da2bea 100644 --- a/projects/app/src/pageComponents/dataset/list/List.tsx +++ b/projects/app/src/pageComponents/dataset/list/List.tsx @@ -8,7 +8,7 @@ import { useRouter } from 'next/router'; import PermissionIconText from '@/components/support/permission/IconText'; import Avatar from '@fastgpt/web/components/common/Avatar'; import { useConfirm } from '@fastgpt/web/hooks/useConfirm'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import { checkTeamExportDatasetLimit } from '@/web/support/user/team/api'; import { downloadFetch } from '@/web/common/system/utils'; @@ -64,7 +64,7 @@ function List() { content: t('dataset:move.hint') }); - const { runAsync: updateDataset } = useRequest2(onUpdateDataset); + const { runAsync: updateDataset } = useRequest(onUpdateDataset); const { getBoxProps } = useFolderDrag({ activeStyles: { @@ -86,7 +86,7 @@ function List() { [editPerDatasetId, myDatasets] ); - const { runAsync: exportDataset } = useRequest2( + const { runAsync: exportDataset } = useRequest( async ({ _id, name }: { _id: string; name: string }) => { await checkTeamExportDatasetLimit(_id); diff --git a/projects/app/src/pageComponents/login/ForgetPasswordForm.tsx b/projects/app/src/pageComponents/login/ForgetPasswordForm.tsx index 5aab7043be..13012363b2 100644 --- a/projects/app/src/pageComponents/login/ForgetPasswordForm.tsx +++ b/projects/app/src/pageComponents/login/ForgetPasswordForm.tsx @@ -8,7 +8,7 @@ import type { LoginSuccessResponse } from '@/global/support/api/userRes.d'; import { useToast } from '@fastgpt/web/hooks/useToast'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import { useTranslation } from 'next-i18next'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { checkPasswordRule } from '@fastgpt/global/common/string/password'; interface Props { @@ -53,7 +53,7 @@ const RegisterForm = ({ setPageType, loginSuccess }: Props) => { }) .join('/'); - const { runAsync: onclickFindPassword, loading: requesting } = useRequest2( + const { runAsync: onclickFindPassword, loading: requesting } = useRequest( async ({ username, code, password }: RegisterType) => { loginSuccess( await postFindPassword({ diff --git a/projects/app/src/pageComponents/login/LoginForm/LoginForm.tsx b/projects/app/src/pageComponents/login/LoginForm/LoginForm.tsx index d5a1db64f3..a1a4445278 100644 --- a/projects/app/src/pageComponents/login/LoginForm/LoginForm.tsx +++ b/projects/app/src/pageComponents/login/LoginForm/LoginForm.tsx @@ -8,7 +8,7 @@ import { useToast } from '@fastgpt/web/hooks/useToast'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import { useTranslation } from 'next-i18next'; import FormLayout from './FormLayout'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import PolicyTip from './PolicyTip'; import { useSearchParams } from 'next/navigation'; import { UserErrEnum } from '@fastgpt/global/common/error/code/user'; @@ -38,7 +38,7 @@ const LoginForm = ({ setPageType, loginSuccess }: Props) => { formState: { errors } } = useForm(); - const { runAsync: onclickLogin, loading: requesting } = useRequest2( + const { runAsync: onclickLogin, loading: requesting } = useRequest( async ({ username, password }: LoginFormType) => { const { code } = await getPreLogin(username); loginSuccess( diff --git a/projects/app/src/pageComponents/login/RegisterForm.tsx b/projects/app/src/pageComponents/login/RegisterForm.tsx index bb54c466f6..b6752cae9b 100644 --- a/projects/app/src/pageComponents/login/RegisterForm.tsx +++ b/projects/app/src/pageComponents/login/RegisterForm.tsx @@ -8,7 +8,7 @@ import type { LoginSuccessResponse } from '@/global/support/api/userRes'; import { useToast } from '@fastgpt/web/hooks/useToast'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import { useTranslation } from 'next-i18next'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getBdVId, getFastGPTSem, @@ -49,7 +49,7 @@ const RegisterForm = ({ setPageType, loginSuccess }: Props) => { const { SendCodeBox, openCodeAuthModal } = useSendCode({ type: 'register' }); - const { runAsync: onclickRegister, loading: requesting } = useRequest2( + const { runAsync: onclickRegister, loading: requesting } = useRequest( async ({ username, password, code }: RegisterType) => { loginSuccess( await postRegister({ diff --git a/projects/app/src/pageComponents/price/ExtraPlan.tsx b/projects/app/src/pageComponents/price/ExtraPlan.tsx index 1a4fc36e2f..b52094379d 100644 --- a/projects/app/src/pageComponents/price/ExtraPlan.tsx +++ b/projects/app/src/pageComponents/price/ExtraPlan.tsx @@ -9,7 +9,7 @@ import { postCreatePayBill } from '@/web/support/wallet/bill/api'; import { BillTypeEnum } from '@fastgpt/global/support/wallet/bill/constants'; import QRCodePayModal, { type QRPayProps } from '@/components/support/wallet/QRCodePayModal'; import MyNumberInput from '@fastgpt/web/components/common/Input/NumberInput'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import MySelect from '@fastgpt/web/components/common/MySelect'; import { calculatePrice } from '@fastgpt/global/support/wallet/bill/tools'; import { formatNumberWithUnit } from '@fastgpt/global/common/string/tools'; @@ -38,7 +38,7 @@ const ExtraPlan = ({ onPaySuccess }: { onPaySuccess?: () => void }) => { const watchedDatasetSize = watchDatasetSize('datasetSize'); const watchedDatasetMonth = watchDatasetSize('month'); - const { runAsync: onclickBuyDatasetSize, loading: isLoadingBuyDatasetSize } = useRequest2( + const { runAsync: onclickBuyDatasetSize, loading: isLoadingBuyDatasetSize } = useRequest( async ({ datasetSize, month }: { datasetSize: number; month: number }) => { datasetSize = Math.ceil(datasetSize); month = Math.ceil(month); @@ -82,7 +82,7 @@ const ExtraPlan = ({ onPaySuccess }: { onPaySuccess?: () => void }) => { return t('common:one_year'); }; - const { runAsync: onclickBuyExtraPoints, loading: isLoadingBuyExtraPoints } = useRequest2( + const { runAsync: onclickBuyExtraPoints, loading: isLoadingBuyExtraPoints } = useRequest( async ({ points, month }: { points: number; month: number }) => { points = Math.ceil(points); month = Math.ceil(month); diff --git a/projects/app/src/pageComponents/price/Standard.tsx b/projects/app/src/pageComponents/price/Standard.tsx index 124117742f..c6bb607e51 100644 --- a/projects/app/src/pageComponents/price/Standard.tsx +++ b/projects/app/src/pageComponents/price/Standard.tsx @@ -5,7 +5,7 @@ import { useTranslation } from 'next-i18next'; import { StandardSubLevelEnum, SubModeEnum } from '@fastgpt/global/support/wallet/sub/constants'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import { standardSubLevelMap } from '@fastgpt/global/support/wallet/sub/constants'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { type TeamSubSchemaType } from '@fastgpt/global/support/wallet/sub/type'; import QRCodePayModal, { type QRPayProps } from '@/components/support/wallet/QRCodePayModal'; import { postCreatePayBill } from '@/web/support/wallet/bill/api'; @@ -57,7 +57,7 @@ const Standard = ({ }, [subPlans?.activityExpirationTime]); // 获取优惠券 - const { data: coupons = [], runAsync: getCoupons } = useRequest2( + const { data: coupons = [], runAsync: getCoupons } = useRequest( async () => { if (!myStandardPlan?.teamId) return []; return getDiscountCouponList(myStandardPlan.teamId); @@ -125,7 +125,7 @@ const Standard = ({ const [qrPayData, setQRPayData] = useState(); /* Get pay code */ - const { runAsync: onPay, loading: isLoading } = useRequest2(postCreatePayBill, { + const { runAsync: onPay, loading: isLoading } = useRequest(postCreatePayBill, { onSuccess(res) { setQRPayData(res); } diff --git a/projects/app/src/pages/account/customDomain/index.tsx b/projects/app/src/pages/account/customDomain/index.tsx index 04f75b20a0..b835efc174 100644 --- a/projects/app/src/pages/account/customDomain/index.tsx +++ b/projects/app/src/pages/account/customDomain/index.tsx @@ -13,7 +13,7 @@ import { Tr, useDisclosure } from '@chakra-ui/react'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; import dynamic from 'next/dynamic'; import { providerMap, customDomainStatusMap } from '@/web/support/customDomain/const'; @@ -45,7 +45,7 @@ const CustomDomain = () => { data: customDomainList, refreshAsync: refreshCustomDomainList, loading: loadingCustomDomainList - } = useRequest2(listCustomDomain, { + } = useRequest(listCustomDomain, { manual: false }); const { @@ -60,7 +60,7 @@ const CustomDomain = () => { // onClose: onCloseDomainVerify // } = useDisclosure(); - const { runAsync: onDelete, loading: loadingDelete } = useRequest2(deleteCustomDomain, { + const { runAsync: onDelete, loading: loadingDelete } = useRequest(deleteCustomDomain, { manual: true, successToast: t('common:Success'), onSuccess: () => refreshCustomDomainList() diff --git a/projects/app/src/pages/account/info/index.tsx b/projects/app/src/pages/account/info/index.tsx index 811fdbb90d..cfcc8ed003 100644 --- a/projects/app/src/pages/account/info/index.tsx +++ b/projects/app/src/pages/account/info/index.tsx @@ -40,7 +40,7 @@ import { serviceSideProps } from '@/web/common/i18n/utils'; import { useRouter } from 'next/router'; import TeamSelector from '@/pageComponents/account/TeamSelector'; import { getWorkorderURL } from '@/web/common/workorder/api'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useMount } from 'ahooks'; import MyDivider from '@fastgpt/web/components/common/MyDivider'; import { useUploadAvatar } from '@fastgpt/web/common/file/hooks/useUploadAvatar'; @@ -723,7 +723,7 @@ const Other = ({ onOpenContact }: { onOpenContact: () => void }) => { const { t } = useTranslation(); const { isPc } = useSystem(); - const { runAsync: onFeedback } = useRequest2( + const { runAsync: onFeedback } = useRequest( async () => { const plan = teamPlanStatus?.standard?.currentSubLevel ? subPlans?.standard?.[teamPlanStatus?.standard?.currentSubLevel] diff --git a/projects/app/src/pages/account/thirdParty/index.tsx b/projects/app/src/pages/account/thirdParty/index.tsx index cfaeb9490f..a58cc778b5 100644 --- a/projects/app/src/pages/account/thirdParty/index.tsx +++ b/projects/app/src/pages/account/thirdParty/index.tsx @@ -10,7 +10,7 @@ import { useState, useMemo } from 'react'; import WorkflowVariableModal from '@/pageComponents/account/thirdParty/WorkflowVariableModal'; import { useToast } from '@fastgpt/web/hooks/useToast'; import { serviceSideProps } from '@/web/common/i18n/utils'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { GET } from '@/web/common/api/request'; import type { checkUsageResponse } from '@/pages/api/support/user/team/thirtdParty/checkUsage'; import MyBox from '@fastgpt/web/components/common/MyBox'; @@ -79,7 +79,7 @@ const ThirdParty = () => { ] ); - const { data: workflowVariables = [], loading } = useRequest2( + const { data: workflowVariables = [], loading } = useRequest( async (): Promise => { return Promise.all( (feConfigs?.externalProviderWorkflowVariables || []).map(async (item) => { diff --git a/projects/app/src/pages/chat/share.tsx b/projects/app/src/pages/chat/share.tsx index 12921eddca..a630da4498 100644 --- a/projects/app/src/pages/chat/share.tsx +++ b/projects/app/src/pages/chat/share.tsx @@ -22,7 +22,7 @@ import { useContextSelector } from 'use-context-selector'; import ChatContextProvider, { ChatContext } from '@/web/core/chat/context/chatContext'; import { GetChatTypeEnum } from '@/global/core/chat/constants'; import { useMount } from 'ahooks'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getNanoid } from '@fastgpt/global/common/string/tools'; import dynamic from 'next/dynamic'; @@ -102,7 +102,7 @@ const OutLink = (props: Props) => { const isChatRecordsLoaded = useContextSelector(ChatRecordContext, (v) => v.isChatRecordsLoaded); const initSign = useRef(false); - const { data, loading } = useRequest2( + const { data, loading } = useRequest( async () => { const shareId = outLinkAuthData.shareId; const outLinkUid = outLinkAuthData.outLinkUid; diff --git a/projects/app/src/pages/config/tool/index.tsx b/projects/app/src/pages/config/tool/index.tsx index 38c77ec3c5..dab0de5cbe 100644 --- a/projects/app/src/pages/config/tool/index.tsx +++ b/projects/app/src/pages/config/tool/index.tsx @@ -12,7 +12,7 @@ import { AppToolSourceEnum } from '@fastgpt/global/core/app/tool/constants'; import { splitCombineToolId } from '@fastgpt/global/core/app/tool/utils'; import EmptyTip from '@fastgpt/web/components/common/EmptyTip'; import ToolRow from '@/pageComponents/config/tool/ToolRow'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import TagManageModal from '@/pageComponents/config/TagManageModal'; import dynamic from 'next/dynamic'; import { useSafeTranslation } from '@fastgpt/web/hooks/useSafeTranslation'; @@ -47,7 +47,7 @@ const ToolProvider = () => { onClose: onCloseImportModal } = useDisclosure(); - const { runAsync: refreshTools, loading: loadingTools } = useRequest2( + const { runAsync: refreshTools, loading: loadingTools } = useRequest( () => getAdminSystemTools({ parentId: null }), { onSuccess: (data) => { diff --git a/projects/app/src/pages/config/tool/marketplace.tsx b/projects/app/src/pages/config/tool/marketplace.tsx index df6c285d57..9624f7394a 100644 --- a/projects/app/src/pages/config/tool/marketplace.tsx +++ b/projects/app/src/pages/config/tool/marketplace.tsx @@ -14,7 +14,7 @@ import ToolCard, { type ToolCardItemType } from '@fastgpt/web/components/core/pl import ToolTagFilterBox from '@fastgpt/web/components/core/plugin/tool/TagFilterBox'; import ToolDetailDrawer from '@fastgpt/web/components/core/plugin/tool/ToolDetailDrawer'; import EmptyTip from '@fastgpt/web/components/common/EmptyTip'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { intallPluginWithUrl } from '@/web/core/plugin/admin/api'; import { deletePkgPlugin } from '@/web/core/plugin/admin/api'; import { @@ -133,7 +133,7 @@ const ToolkitMarketplace = ({ marketplaceUrl }: { marketplaceUrl: string }) => { } ); - const { data: systemInstalledPlugins, runAsync: refreshInstalledPlugins } = useRequest2( + const { data: systemInstalledPlugins, runAsync: refreshInstalledPlugins } = useRequest( async () => { const { list } = await getSystemInstalledPlugins({ type: 'tool' }); return { @@ -146,12 +146,12 @@ const ToolkitMarketplace = ({ marketplaceUrl }: { marketplaceUrl: string }) => { } ); - const { data: allTags = [] } = useRequest2(getMarketPlaceToolTags, { + const { data: allTags = [] } = useRequest(getMarketPlaceToolTags, { manual: false }); // Controler - const { runAsync: handleInstallTool } = useRequest2( + const { runAsync: handleInstallTool } = useRequest( async (tool: ToolCardItemType) => { const existingPromise = operatingPromisesRef.current.get(tool.id); if (existingPromise) { @@ -228,7 +228,7 @@ const ToolkitMarketplace = ({ marketplaceUrl }: { marketplaceUrl: string }) => { [updatingToolIdsDispatch, selectedTool, refreshInstalledPlugins] ); - const { runAsync: handleDeleteTool } = useRequest2( + const { runAsync: handleDeleteTool } = useRequest( async (tool: ToolCardItemType) => { const existingPromise = operatingPromisesRef.current.get(tool.id); if (existingPromise) { diff --git a/projects/app/src/pages/dashboard/agent/index.tsx b/projects/app/src/pages/dashboard/agent/index.tsx index 82b827a2e7..d4eb7712b5 100644 --- a/projects/app/src/pages/dashboard/agent/index.tsx +++ b/projects/app/src/pages/dashboard/agent/index.tsx @@ -4,7 +4,7 @@ import { Box, Button, Flex, useDisclosure } from '@chakra-ui/react'; import { serviceSideProps } from '@/web/common/i18n/utils'; import { useTranslation } from 'next-i18next'; import dynamic from 'next/dynamic'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { postCreateAppFolder } from '@/web/core/app/api/app'; import type { EditFolderFormType } from '@fastgpt/web/components/common/MyModal/EditFolderModal'; import { useContextSelector } from 'use-context-selector'; @@ -70,13 +70,13 @@ const MyApps = ({ MenuIcon }: { MenuIcon: JSX.Element }) => { } }); - const { runAsync: onCreateFolder } = useRequest2(postCreateAppFolder, { + const { runAsync: onCreateFolder } = useRequest(postCreateAppFolder, { onSuccess() { loadMyApps(); }, errorToast: 'Error' }); - const { runAsync: onDeleFolder } = useRequest2(delAppById, { + const { runAsync: onDeleFolder } = useRequest(delAppById, { onSuccess(data) { data.forEach((appId) => { localStorage.removeItem(`app_log_keys_${appId}`); diff --git a/projects/app/src/pages/dashboard/create/index.tsx b/projects/app/src/pages/dashboard/create/index.tsx index 75cba82488..66b96d3e13 100644 --- a/projects/app/src/pages/dashboard/create/index.tsx +++ b/projects/app/src/pages/dashboard/create/index.tsx @@ -22,7 +22,7 @@ import { useUploadAvatar } from '@fastgpt/web/common/file/hooks/useUploadAvatar' import { getUploadAvatarPresignedUrl } from '@/web/common/file/api'; import { useRouter } from 'next/router'; import { emptyTemplates } from '@/web/core/app/templates'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import Avatar from '@fastgpt/web/components/common/Avatar'; import MyTooltip from '@fastgpt/web/components/common/MyTooltip'; import { useTranslation } from 'next-i18next'; @@ -76,7 +76,7 @@ const CreateAppsPage = () => { const [creatingTemplateId, setCreatingTemplateId] = useState(null); const isToolType = ToolTypeList.includes(selectedAppType); - const { data: templateData, loading: isLoadingTemplates } = useRequest2( + const { data: templateData, loading: isLoadingTemplates } = useRequest( () => getTemplateMarketItemList({ isQuickTemplate: true, type: selectedAppType }), { manual: false, @@ -107,7 +107,7 @@ const CreateAppsPage = () => { } }); - const { runAsync: runGetMCPTools, loading: isGettingMCPTools } = useRequest2( + const { runAsync: runGetMCPTools, loading: isGettingMCPTools } = useRequest( (data: { url: string; headerSecret: StoreSecretValueType }) => getMCPTools(data), { onSuccess: (res: McpToolConfigType[]) => { @@ -117,7 +117,7 @@ const CreateAppsPage = () => { } ); - const { runAsync: onClickCreate, loading: isCreating } = useRequest2( + const { runAsync: onClickCreate, loading: isCreating } = useRequest( async ( { avatar, name, createType, mcpUrl, mcpHeaderSecret, mcpToolList }: FormType, templateId?: string diff --git a/projects/app/src/pages/dashboard/evaluation/create.tsx b/projects/app/src/pages/dashboard/evaluation/create.tsx index f4b04b5077..4dd6d0aa21 100644 --- a/projects/app/src/pages/dashboard/evaluation/create.tsx +++ b/projects/app/src/pages/dashboard/evaluation/create.tsx @@ -13,7 +13,7 @@ import MyIcon from '@fastgpt/web/components/common/Icon'; import FileSelector, { type SelectFileItemType } from '@/components/Select/FileSelectorBox'; import { Trans } from 'next-i18next'; import MyIconButton from '@fastgpt/web/components/common/Icon/button'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getAppDetailById } from '@/web/core/app/api'; import { useToast } from '@fastgpt/web/hooks/useToast'; import QuestionTip from '@fastgpt/web/components/common/MyTooltip/QuestionTip'; @@ -60,7 +60,7 @@ const EvaluationCreating = () => { const appId = watch('appId'); const evaluationFiles = watch('evaluationFiles'); - const { runAsync: getAppDetail, loading: isLoadingAppDetail } = useRequest2(() => { + const { runAsync: getAppDetail, loading: isLoadingAppDetail } = useRequest(() => { if (appId) return getAppDetailById(appId); return Promise.resolve(null); }); @@ -77,7 +77,7 @@ const EvaluationCreating = () => { }); }; - const { runAsync: createEvaluation, loading: isCreating } = useRequest2( + const { runAsync: createEvaluation, loading: isCreating } = useRequest( async (data: EvaluationFormType) => { await postCreateEvaluation({ file: data.evaluationFiles[0].file, diff --git a/projects/app/src/pages/dashboard/evaluation/index.tsx b/projects/app/src/pages/dashboard/evaluation/index.tsx index 5cbc16b1e6..ea19c83d92 100644 --- a/projects/app/src/pages/dashboard/evaluation/index.tsx +++ b/projects/app/src/pages/dashboard/evaluation/index.tsx @@ -19,7 +19,7 @@ import { import SearchInput from '@fastgpt/web/components/common/Input/SearchInput'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { useRouter } from 'next/router'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { deleteEvaluation, getEvaluationList } from '@/web/core/app/api/evaluation'; import { formatTime2YMDHM } from '@fastgpt/global/common/string/time'; import Avatar from '@fastgpt/web/components/common/Avatar'; @@ -75,7 +75,7 @@ const Evaluation = () => { setPollingInterval(hasRunningOrErrorTasks ? 10000 : 0); }, [evaluationList]); - const { runAsync: onDeleteEval } = useRequest2(deleteEvaluation, { + const { runAsync: onDeleteEval } = useRequest(deleteEvaluation, { onSuccess: () => { fetchData(); } diff --git a/projects/app/src/pages/dashboard/mcpServer/index.tsx b/projects/app/src/pages/dashboard/mcpServer/index.tsx index 21159963f4..dd517059ed 100644 --- a/projects/app/src/pages/dashboard/mcpServer/index.tsx +++ b/projects/app/src/pages/dashboard/mcpServer/index.tsx @@ -16,7 +16,7 @@ import { Tr } from '@chakra-ui/react'; import { useTranslation } from 'next-i18next'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { deleteMcpServer, getMcpServerList } from '@/web/support/mcp/api'; import MyBox from '@fastgpt/web/components/common/MyBox'; import EditMcpModal, { @@ -44,14 +44,14 @@ const McpServer = () => { data: mcpServerList = [], loading: loadingList, refresh: loadMcpList - } = useRequest2(getMcpServerList, { + } = useRequest(getMcpServerList, { manual: false }); const [editMcp, setEditMcp] = useState(); const [usageWay, setUsageWay] = useState(); - const { runAsync: onDeleteMcpServer } = useRequest2(deleteMcpServer, { + const { runAsync: onDeleteMcpServer } = useRequest(deleteMcpServer, { manual: true, onSuccess: () => { loadMcpList(); diff --git a/projects/app/src/pages/dashboard/systemTool/index.tsx b/projects/app/src/pages/dashboard/systemTool/index.tsx index 69be7cb22d..5a70b883ff 100644 --- a/projects/app/src/pages/dashboard/systemTool/index.tsx +++ b/projects/app/src/pages/dashboard/systemTool/index.tsx @@ -3,7 +3,7 @@ import { serviceSideProps } from '@/web/common/i18n/utils'; import { getTeamSystemPluginList, postToggleInstallPlugin } from '@/web/core/plugin/team/api'; import { getPluginToolTags } from '@/web/core/plugin/toolTag/api'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useTranslation } from 'next-i18next'; import { Box, Button, Flex, Grid, Input, InputGroup, VStack } from '@chakra-ui/react'; import { useSystemStore } from '@/web/common/system/useSystemStore'; @@ -64,20 +64,20 @@ const ToolKitProvider = ({ MenuIcon }: { MenuIcon: JSX.Element }) => { const loadingPromisesRef = useRef>>(new Map()); const [selectedTagIds, setSelectedTagIds] = useState([]); - const { data: tags = [] } = useRequest2(getPluginToolTags, { + const { data: tags = [] } = useRequest(getPluginToolTags, { manual: false }); // TODO: 把 filter 放到后端 const [tools, setTools] = useState([]); - const { loading: loadingTools } = useRequest2(() => getTeamSystemPluginList({ type: 'tool' }), { + const { loading: loadingTools } = useRequest(() => getTeamSystemPluginList({ type: 'tool' }), { manual: false, onSuccess(data) { setTools(data); } }); - const { runAsync: toggleInstall } = useRequest2( + const { runAsync: toggleInstall } = useRequest( async (data: { pluginId: string; installed: boolean }) => { const existingPromise = loadingPromisesRef.current.get(data.pluginId); if (existingPromise) { diff --git a/projects/app/src/pages/dashboard/templateMarket/index.tsx b/projects/app/src/pages/dashboard/templateMarket/index.tsx index ea7d25fc53..ec7425c947 100644 --- a/projects/app/src/pages/dashboard/templateMarket/index.tsx +++ b/projects/app/src/pages/dashboard/templateMarket/index.tsx @@ -15,7 +15,7 @@ import { import { appWorkflow2Form } from '@fastgpt/global/core/app/utils'; import { form2AppWorkflow } from '@/web/core/app/utils'; import MyBox from '@fastgpt/web/components/common/MyBox'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getTemplateMarketItemDetail } from '@/web/core/app/api/template'; import { postCreateApp } from '@/web/core/app/api'; import { webPushTrack } from '@/web/common/middle/tracks/utils'; @@ -66,7 +66,7 @@ const TemplateMarket = ({ .filter((item) => item.templates.length > 0); }, [templateList, templateTags]); - const { runAsync: onUseTemplate, loading: isCreating } = useRequest2( + const { runAsync: onUseTemplate, loading: isCreating } = useRequest( async (template: AppTemplateSchemaType) => { const templateDetail = await getTemplateMarketItemDetail(template.templateId); diff --git a/projects/app/src/pages/dashboard/tool/index.tsx b/projects/app/src/pages/dashboard/tool/index.tsx index cd63564aaa..8104eae97a 100644 --- a/projects/app/src/pages/dashboard/tool/index.tsx +++ b/projects/app/src/pages/dashboard/tool/index.tsx @@ -4,7 +4,7 @@ import { Box, Button, Flex, useDisclosure } from '@chakra-ui/react'; import { serviceSideProps } from '@/web/common/i18n/utils'; import { useTranslation } from 'next-i18next'; import dynamic from 'next/dynamic'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { postCreateAppFolder } from '@/web/core/app/api/app'; import type { EditFolderFormType } from '@fastgpt/web/components/common/MyModal/EditFolderModal'; import { useContextSelector } from 'use-context-selector'; @@ -68,13 +68,13 @@ const MyTools = ({ MenuIcon }: { MenuIcon: JSX.Element }) => { } }); - const { runAsync: onCreateFolder } = useRequest2(postCreateAppFolder, { + const { runAsync: onCreateFolder } = useRequest(postCreateAppFolder, { onSuccess() { loadMyApps(); }, errorToast: 'Error' }); - const { runAsync: onDeleFolder } = useRequest2(delAppById, { + const { runAsync: onDeleFolder } = useRequest(delAppById, { onSuccess(data) { data.forEach((appId) => { localStorage.removeItem(`app_log_keys_${appId}`); diff --git a/projects/app/src/pages/dataset/detail/index.tsx b/projects/app/src/pages/dataset/detail/index.tsx index ede69119a7..841bcf7a9a 100644 --- a/projects/app/src/pages/dataset/detail/index.tsx +++ b/projects/app/src/pages/dataset/detail/index.tsx @@ -18,7 +18,7 @@ import { import CollectionPageContextProvider from '@/pageComponents/dataset/detail/CollectionCard/Context'; import { useContextSelector } from 'use-context-selector'; import NextHead from '@/components/common/NextHead'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useSystem } from '@fastgpt/web/hooks/useSystem'; const CollectionCard = dynamic( @@ -53,7 +53,7 @@ const Detail = ({ datasetId, currentTab }: Props) => { const datasetDetail = useContextSelector(DatasetPageContext, (v) => v.datasetDetail); const loadDatasetDetail = useContextSelector(DatasetPageContext, (v) => v.loadDatasetDetail); - useRequest2(() => loadDatasetDetail(datasetId), { + useRequest(() => loadDatasetDetail(datasetId), { onError(err: any) { router.replace(`/dataset/list`); toast({ diff --git a/projects/app/src/pages/dataset/list/context.tsx b/projects/app/src/pages/dataset/list/context.tsx index 0b06082399..171d4236f8 100644 --- a/projects/app/src/pages/dataset/list/context.tsx +++ b/projects/app/src/pages/dataset/list/context.tsx @@ -13,7 +13,7 @@ import { import { useRouter } from 'next/router'; import React, { useCallback, useState } from 'react'; import { createContext } from 'use-context-selector'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { type DatasetUpdateBody } from '@fastgpt/global/core/dataset/api'; import dynamic from 'next/dynamic'; import { DatasetTypeEnum } from '@fastgpt/global/core/dataset/constants'; @@ -76,7 +76,7 @@ function DatasetContextProvider({ children }: { children: React.ReactNode }) { data: myDatasets = [], runAsync: loadMyDatasets, loading: isFetchingDatasets - } = useRequest2( + } = useRequest( () => getDatasets({ searchKey, @@ -88,7 +88,7 @@ function DatasetContextProvider({ children }: { children: React.ReactNode }) { } ); - const { data: folderDetail, runAsync: refetchFolderDetail } = useRequest2( + const { data: folderDetail, runAsync: refetchFolderDetail } = useRequest( () => (parentId ? getDatasetById(parentId) : Promise.resolve(undefined)), { manual: false, @@ -96,7 +96,7 @@ function DatasetContextProvider({ children }: { children: React.ReactNode }) { } ); - const { data: paths = [], runAsync: refetchPaths } = useRequest2( + const { data: paths = [], runAsync: refetchPaths } = useRequest( async () => getDatasetPaths({ sourceId: parentId, type: 'current' }), { manual: false, @@ -104,7 +104,7 @@ function DatasetContextProvider({ children }: { children: React.ReactNode }) { } ); - const { runAsync: onUpdateDataset } = useRequest2(putDatasetById, { + const { runAsync: onUpdateDataset } = useRequest(putDatasetById, { onSuccess: () => Promise.all([refetchFolderDetail(), refetchPaths(), loadMyDatasets()]) }); @@ -135,7 +135,7 @@ function DatasetContextProvider({ children }: { children: React.ReactNode }) { const [editedDataset, setEditedDataset] = useState(); - const { runAsync: onDelDataset } = useRequest2(delDatasetById, { + const { runAsync: onDelDataset } = useRequest(delDatasetById, { successToast: t('common:delete_success'), errorToast: t('common:dataset.Delete Dataset Error') }); diff --git a/projects/app/src/pages/price/index.tsx b/projects/app/src/pages/price/index.tsx index 7d420e809b..048d529262 100644 --- a/projects/app/src/pages/price/index.tsx +++ b/projects/app/src/pages/price/index.tsx @@ -12,7 +12,7 @@ import { useTranslation } from 'next-i18next'; import MyIcon from '@fastgpt/web/components/common/Icon'; import { useSystemStore } from '@/web/common/system/useSystemStore'; import { useRouter } from 'next/router'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; const PriceBox = () => { const { userInfo } = useUserStore(); @@ -23,7 +23,7 @@ const PriceBox = () => { const backButtonRef = useRef(null); const [isButtonInView, setIsButtonInView] = useState(false); - const { data: teamSubPlan } = useRequest2(getTeamPlanStatus, { + const { data: teamSubPlan } = useRequest(getTeamPlanStatus, { manual: false, refreshDeps: [userInfo] }); diff --git a/projects/app/src/web/common/hooks/useEditTitle.tsx b/projects/app/src/web/common/hooks/useEditTitle.tsx index 9bc6ce3500..ec0c8a298e 100644 --- a/projects/app/src/web/common/hooks/useEditTitle.tsx +++ b/projects/app/src/web/common/hooks/useEditTitle.tsx @@ -3,7 +3,7 @@ import { ModalFooter, ModalBody, Input, useDisclosure, Button, Box } from '@chak import MyModal from '@fastgpt/web/components/common/MyModal'; import { useToast } from '@fastgpt/web/hooks/useToast'; import { useTranslation } from 'next-i18next'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import FormLabel from '@fastgpt/web/components/common/MyBox/FormLabel'; export const useEditTitle = ({ @@ -85,7 +85,7 @@ export const useEditTitle = ({ iconSrc?: string; closeBtnText?: string; }) => { - const { runAsync, loading } = useRequest2(onclickConfirm); + const { runAsync, loading } = useRequest(onclickConfirm); return ( diff --git a/projects/app/src/web/context/useInitApp.ts b/projects/app/src/web/context/useInitApp.ts index 5d81c09dc4..ad34383552 100644 --- a/projects/app/src/web/context/useInitApp.ts +++ b/projects/app/src/web/context/useInitApp.ts @@ -5,7 +5,7 @@ import { useSystemStore } from '@/web/common/system/useSystemStore'; import type { FastGPTFeConfigsType } from '@fastgpt/global/common/system/types/index.d'; import { useMemoizedFn, useMount } from 'ahooks'; import { TrackEventName } from '../common/system/constants'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useUserStore } from '../support/user/useUserStore'; import { setBdVId, @@ -129,7 +129,7 @@ export const useInitApp = () => { }; }); - useRequest2(initFetch, { + useRequest(initFetch, { refreshDeps: [userInfo?.username], manual: false, pollingInterval: 300000 // 5 minutes refresh diff --git a/projects/app/src/web/core/chat/context/chatContext.tsx b/projects/app/src/web/core/chat/context/chatContext.tsx index bbc4c297fb..374388f7ea 100644 --- a/projects/app/src/web/core/chat/context/chatContext.tsx +++ b/projects/app/src/web/core/chat/context/chatContext.tsx @@ -1,4 +1,4 @@ -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useRouter } from 'next/router'; import React, { type ReactNode, useCallback, useMemo, useRef } from 'react'; import { createContext } from 'use-context-selector'; @@ -140,7 +140,7 @@ const ChatContextProvider = ({ [onCloseSlider, router] ); - const { runAsync: onUpdateHistory } = useRequest2( + const { runAsync: onUpdateHistory } = useRequest( (data: UpdateHistoryParams) => putChatHistory({ appId, @@ -173,7 +173,7 @@ const ChatContextProvider = ({ } ); - const { runAsync: onDelHistory, loading: isDeletingHistory } = useRequest2( + const { runAsync: onDelHistory, loading: isDeletingHistory } = useRequest( (chatId: string) => delChatHistoryById({ appId: appId, @@ -189,7 +189,7 @@ const ChatContextProvider = ({ } ); - const { runAsync: onClearHistories, loading: isClearingHistory } = useRequest2( + const { runAsync: onClearHistories, loading: isClearingHistory } = useRequest( () => delClearChatHistories({ appId: appId, diff --git a/projects/app/src/web/core/chat/context/chatPageContext.tsx b/projects/app/src/web/core/chat/context/chatPageContext.tsx index 89b0652216..97e3a35639 100644 --- a/projects/app/src/web/core/chat/context/chatPageContext.tsx +++ b/projects/app/src/web/core/chat/context/chatPageContext.tsx @@ -8,7 +8,7 @@ import { import { getChatSetting } from '@/web/core/chat/api'; import { useChatStore } from '@/web/core/chat/context/useChatStore'; import type { ChatSettingType } from '@fastgpt/global/core/chat/setting/type'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { useRouter } from 'next/router'; import { useCallback, useEffect, useMemo, useState } from 'react'; import { createContext } from 'use-context-selector'; @@ -77,7 +77,7 @@ export const ChatPageContextProvider = ({ const [isInitedUser, setIsInitedUser] = useState(false); // Get recently used apps - const { data: myApps = [], refresh: refreshRecentlyUsed } = useRequest2( + const { data: myApps = [], refresh: refreshRecentlyUsed } = useRequest( () => getRecentlyUsedApps(), { manual: false, @@ -108,7 +108,7 @@ export const ChatPageContextProvider = ({ } }, [routeAppId, setAppId, userInfo]); - const { data: chatSettings, runAsync: refreshChatSetting } = useRequest2( + const { data: chatSettings, runAsync: refreshChatSetting } = useRequest( async () => { if (!feConfigs.isPlus) return; return await getChatSetting(); diff --git a/projects/app/src/web/core/dataset/components/SelectCollections.tsx b/projects/app/src/web/core/dataset/components/SelectCollections.tsx index 79efd244aa..04c328faaa 100644 --- a/projects/app/src/web/core/dataset/components/SelectCollections.tsx +++ b/projects/app/src/web/core/dataset/components/SelectCollections.tsx @@ -1,7 +1,7 @@ import MyIcon from '@fastgpt/web/components/common/Icon'; import MyModal from '@fastgpt/web/components/common/MyModal'; import FolderPath from '@/components/common/folder/Path'; -import { useRequest, useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getDatasetCollectionPathById, getDatasetCollections } from '@/web/core/dataset/api'; import { Box, Flex, ModalFooter, Button, useTheme, Grid, Card, ModalBody } from '@chakra-ui/react'; import { DatasetCollectionTypeEnum } from '@fastgpt/global/core/dataset/constants'; @@ -48,7 +48,7 @@ const SelectCollections = ({ useQuery(['loadDatasetDetail', datasetId], () => loadDatasetDetail(datasetId)); - const { data, loading: isLoading } = useRequest2( + const { data, loading: isLoading } = useRequest( () => getDatasetCollections({ datasetId, @@ -87,8 +87,8 @@ const SelectCollections = ({ getDatasetCollectionPathById(parentId) ); - const { mutate, isLoading: isResponding } = useRequest({ - mutationFn: async () => { + const { runAsync: mutate, loading: isResponding } = useRequest( + async () => { if (type === 'folder') { await onSuccess?.({ parentId: paths[paths.length - 1]?.parentId || '', collectionIds: [] }); } else { @@ -100,8 +100,10 @@ const SelectCollections = ({ return null; }, - errorToast: t('common:request_error') - }); + { + errorToast: t('common:request_error') + } + ); return ( ([]); const [searchTagKey, setSearchTagKey] = useState(''); - const { runAsync: loadAllDatasetTags, data: allDatasetTags = [] } = useRequest2( + const { runAsync: loadAllDatasetTags, data: allDatasetTags = [] } = useRequest( async () => { if (!feConfigs?.isPlus || !datasetDetail._id) return []; @@ -125,7 +125,7 @@ export const DatasetPageContextProvider = ({ refreshDeps: [datasetDetail._id] } ); - const { data: searchDatasetTagsResult = [] } = useRequest2( + const { data: searchDatasetTagsResult = [] } = useRequest( async () => { if (!searchTagKey) return allDatasetTags; const { list } = await getDatasetCollectionTags({ @@ -142,7 +142,7 @@ export const DatasetPageContextProvider = ({ refreshDeps: [datasetDetail._id, searchTagKey, allDatasetTags] } ); - const { runAsync: onCreateCollectionTag, loading: isCreateCollectionTagLoading } = useRequest2( + const { runAsync: onCreateCollectionTag, loading: isCreateCollectionTagLoading } = useRequest( (tag: string) => postCreateDatasetCollectionTag({ datasetId: datasetDetail._id, @@ -164,7 +164,7 @@ export const DatasetPageContextProvider = ({ refetchInterval: 10000 }); - const { data: paths = [], runAsync: refetchPaths } = useRequest2( + const { data: paths = [], runAsync: refetchPaths } = useRequest( () => getDatasetPaths({ sourceId: datasetDetail?._id, diff --git a/projects/app/src/web/support/user/hooks/useSendCode.tsx b/projects/app/src/web/support/user/hooks/useSendCode.tsx index d11c3d12cf..504c249511 100644 --- a/projects/app/src/web/support/user/hooks/useSendCode.tsx +++ b/projects/app/src/web/support/user/hooks/useSendCode.tsx @@ -3,7 +3,7 @@ import { sendAuthCode } from '@/web/support/user/api'; import type { UserAuthTypeEnum } from '@fastgpt/global/support/user/auth/constants'; import { useTranslation } from 'next-i18next'; import { useSystemStore } from '@/web/common/system/useSystemStore'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { Box, type BoxProps, useDisclosure } from '@chakra-ui/react'; import SendCodeAuthModal from '@/components/support/user/safe/SendCodeAuthModal'; import { useMemoizedFn } from 'ahooks'; @@ -17,7 +17,7 @@ export const useSendCode = ({ type }: { type: `${UserAuthTypeEnum}` }) => { const { toast } = useToast(); const [codeCountDown, setCodeCountDown] = useState(0); - const { runAsync: sendCode, loading: codeSending } = useRequest2( + const { runAsync: sendCode, loading: codeSending } = useRequest( async ({ username, captcha }: { username: string; captcha: string }) => { if (codeCountDown > 0) return; const googleToken = await getClientToken(feConfigs.googleClientVerKey); diff --git a/projects/app/src/web/support/user/team/org/hooks/useOrg.tsx b/projects/app/src/web/support/user/team/org/hooks/useOrg.tsx index 54c783507c..91730400fe 100644 --- a/projects/app/src/web/support/user/team/org/hooks/useOrg.tsx +++ b/projects/app/src/web/support/user/team/org/hooks/useOrg.tsx @@ -3,7 +3,7 @@ import { type OrgListItemType } from '@fastgpt/global/support/user/team/org/type import { memo, useEffect, useMemo, useState } from 'react'; import { useUserStore } from '../../../useUserStore'; import { type ParentTreePathItemType } from '@fastgpt/global/common/parentFolder/type'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import { getOrgList, getOrgMembers } from '../api'; import { useScrollPagination } from '@fastgpt/web/hooks/useScrollPagination'; import { getTeamMembers } from '../../api'; @@ -40,7 +40,7 @@ function useOrg({ withPermission = true }: { withPermission?: boolean } = {}) { data: orgs = [], loading: isLoadingOrgs, refresh: refetchOrgs - } = useRequest2( + } = useRequest( () => getOrgList({ orgId: currentOrg._id, diff --git a/projects/marketplace/src/pages/index.tsx b/projects/marketplace/src/pages/index.tsx index 203ea5d96c..80618bcccf 100644 --- a/projects/marketplace/src/pages/index.tsx +++ b/projects/marketplace/src/pages/index.tsx @@ -18,7 +18,7 @@ import { getMarketplaceTools, getToolTags } from '@/web/api'; -import { useRequest2 } from '@fastgpt/web/hooks/useRequest'; +import { useRequest } from '@fastgpt/web/hooks/useRequest'; import I18nLngSelector from '@/web/common/Select/I18nLngSelector'; import Head from 'next/head'; @@ -152,7 +152,7 @@ const ToolkitMarketplace = () => { } ); - const { data: toolTags = [] } = useRequest2(getToolTags, { + const { data: toolTags = [] } = useRequest(getToolTags, { manual: false });