Feat: Use sonner to replace the requested prompt message component #3221 (#9951)

### What problem does this PR solve?

Feat: Use sonner to replace the requested prompt message component #3221

### Type of change


- [x] New Feature (non-breaking change which adds functionality)
This commit is contained in:
balibabu
2025-09-05 18:43:33 +08:00
committed by GitHub
parent 79ca25ec7e
commit 9aa8cfb73a
10 changed files with 26 additions and 11 deletions

View File

@ -1,28 +1,34 @@
import { toast } from 'sonner'; import { toast } from 'sonner';
const duration = { duration: 1500 };
const message = { const message = {
success: (msg: string) => { success: (msg: string) => {
toast.success(msg, { toast.success(msg, {
position: 'top-center', position: 'top-center',
closeButton: false, closeButton: false,
...duration,
}); });
}, },
error: (msg: string) => { error: (msg: string) => {
toast.error(msg, { toast.error(msg, {
position: 'top-center', position: 'top-center',
closeButton: false, closeButton: false,
...duration,
}); });
}, },
warning: (msg: string) => { warning: (msg: string) => {
toast.warning(msg, { toast.warning(msg, {
position: 'top-center', position: 'top-center',
closeButton: false, closeButton: false,
...duration,
}); });
}, },
info: (msg: string) => { info: (msg: string) => {
toast.info(msg, { toast.info(msg, {
position: 'top-center', position: 'top-center',
closeButton: false, closeButton: false,
...duration,
}); });
}, },
}; };

View File

@ -1,10 +1,11 @@
import message from '@/components/ui/message';
import { ResponseType } from '@/interfaces/database/base'; import { ResponseType } from '@/interfaces/database/base';
import { IFolder } from '@/interfaces/database/file-manager'; import { IFolder } from '@/interfaces/database/file-manager';
import { IConnectRequestBody } from '@/interfaces/request/file-manager'; import { IConnectRequestBody } from '@/interfaces/request/file-manager';
import fileManagerService from '@/services/file-manager-service'; import fileManagerService from '@/services/file-manager-service';
import { downloadFileFromBlob } from '@/utils/file-util'; import { downloadFileFromBlob } from '@/utils/file-util';
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
import { PaginationProps, UploadFile, message } from 'antd'; import { PaginationProps, UploadFile } from 'antd';
import React, { useCallback } from 'react'; import React, { useCallback } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useSearchParams } from 'umi'; import { useSearchParams } from 'umi';

View File

@ -1,3 +1,4 @@
import message from '@/components/ui/message';
import { Authorization } from '@/constants/authorization'; import { Authorization } from '@/constants/authorization';
import userService, { import userService, {
getLoginChannels, getLoginChannels,
@ -5,7 +6,7 @@ import userService, {
} from '@/services/user-service'; } from '@/services/user-service';
import authorizationUtil, { redirectToLogin } from '@/utils/authorization-util'; import authorizationUtil, { redirectToLogin } from '@/utils/authorization-util';
import { useMutation, useQuery } from '@tanstack/react-query'; import { useMutation, useQuery } from '@tanstack/react-query';
import { Form, message } from 'antd'; import { Form } from 'antd';
import { FormInstance } from 'antd/lib'; import { FormInstance } from 'antd/lib';
import { useEffect, useState } from 'react'; import { useEffect, useState } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
@ -50,8 +51,6 @@ export const useLoginWithChannel = () => {
}; };
export const useLogin = () => { export const useLogin = () => {
const { t } = useTranslation();
const { const {
data, data,
isPending: loading, isPending: loading,
@ -62,7 +61,6 @@ export const useLogin = () => {
const { data: res = {}, response } = await userService.login(params); const { data: res = {}, response } = await userService.login(params);
if (res.code === 0) { if (res.code === 0) {
const { data } = res; const { data } = res;
message.success(t('message.logged'));
const authorization = response.headers.get(Authorization); const authorization = response.headers.get(Authorization);
const token = data.access_token; const token = data.access_token;
const userInfo = { const userInfo = {

View File

@ -1,4 +1,5 @@
import { useHandleFilterSubmit } from '@/components/list-filter-bar/use-handle-filter-submit'; import { useHandleFilterSubmit } from '@/components/list-filter-bar/use-handle-filter-submit';
import message from '@/components/ui/message';
import { ResponseType } from '@/interfaces/database/base'; import { ResponseType } from '@/interfaces/database/base';
import { import {
IDocumentInfo, IDocumentInfo,
@ -12,7 +13,6 @@ import i18n from '@/locales/config';
import kbService, { listDocument } from '@/services/knowledge-service'; import kbService, { listDocument } from '@/services/knowledge-service';
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
import { useDebounce } from 'ahooks'; import { useDebounce } from 'ahooks';
import { message } from 'antd';
import { get } from 'lodash'; import { get } from 'lodash';
import { useCallback, useMemo, useState } from 'react'; import { useCallback, useMemo, useState } from 'react';
import { useParams } from 'umi'; import { useParams } from 'umi';

View File

@ -1,3 +1,4 @@
import message from '@/components/ui/message';
import { import {
IFetchFileListResult, IFetchFileListResult,
IFolder, IFolder,
@ -5,7 +6,7 @@ import {
import fileManagerService from '@/services/file-manager-service'; import fileManagerService from '@/services/file-manager-service';
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
import { useDebounce } from 'ahooks'; import { useDebounce } from 'ahooks';
import { PaginationProps, message } from 'antd'; import { PaginationProps } from 'antd';
import { useCallback } from 'react'; import { useCallback } from 'react';
import { useTranslation } from 'react-i18next'; import { useTranslation } from 'react-i18next';
import { useSearchParams } from 'umi'; import { useSearchParams } from 'umi';

View File

@ -1,3 +1,4 @@
import message from '@/components/ui/message';
import { LanguageTranslationMap } from '@/constants/common'; import { LanguageTranslationMap } from '@/constants/common';
import { ResponseGetType } from '@/interfaces/database/base'; import { ResponseGetType } from '@/interfaces/database/base';
import { IToken } from '@/interfaces/database/chat'; import { IToken } from '@/interfaces/database/chat';
@ -18,7 +19,7 @@ import userService, {
listTenantUser, listTenantUser,
} from '@/services/user-service'; } from '@/services/user-service';
import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query'; import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';
import { Modal, message } from 'antd'; import { Modal } from 'antd';
import DOMPurify from 'dompurify'; import DOMPurify from 'dompurify';
import { isEmpty } from 'lodash'; import { isEmpty } from 'lodash';
import { useCallback, useMemo, useState } from 'react'; import { useCallback, useMemo, useState } from 'react';

View File

@ -87,7 +87,6 @@ function AgentForm({ node }: INextOperatorForm) {
const defaultValues = useValues(node); const defaultValues = useValues(node);
const { extraOptions } = useBuildPromptExtraPromptOptions(); const { extraOptions } = useBuildPromptExtraPromptOptions();
console.log('🚀 ~ AgentForm ~ prompts:', extraOptions);
const ExceptionMethodOptions = Object.values(AgentExceptionMethod).map( const ExceptionMethodOptions = Object.values(AgentExceptionMethod).map(
(x) => ({ (x) => ({

View File

@ -0,0 +1,8 @@
import { useSize } from 'ahooks';
export function useCalculateSheetRight() {
const size = useSize(document.querySelector('body'));
const bodyWidth = size?.width ?? 0;
return bodyWidth > 1800 ? 'right-[620px]' : `right-1/3`;
}

View File

@ -5,6 +5,7 @@ import {
SheetTitle, SheetTitle,
} from '@/components/ui/sheet'; } from '@/components/ui/sheet';
import { IModalProps } from '@/interfaces/common'; import { IModalProps } from '@/interfaces/common';
import { cn } from '@/lib/utils';
import { NotebookText } from 'lucide-react'; import { NotebookText } from 'lucide-react';
import 'react18-json-view/src/style.css'; import 'react18-json-view/src/style.css';
import { useCacheChatLog } from '../hooks/use-cache-chat-log'; import { useCacheChatLog } from '../hooks/use-cache-chat-log';
@ -24,7 +25,7 @@ export function LogSheet({
}: LogSheetProps) { }: LogSheetProps) {
return ( return (
<Sheet open onOpenChange={hideModal} modal={false}> <Sheet open onOpenChange={hideModal} modal={false}>
<SheetContent className="top-20 right-[620px]"> <SheetContent className={cn('top-20 right-[620px]')}>
<SheetHeader> <SheetHeader>
<SheetTitle className="flex items-center gap-1"> <SheetTitle className="flex items-center gap-1">
<NotebookText className="size-4" /> <NotebookText className="size-4" />