From b21fe0ac4c9afcd3118c395eee53edefb8622752 Mon Sep 17 00:00:00 2001 From: jialin Date: Wed, 11 Feb 2026 18:19:52 +0800 Subject: [PATCH] style: error message toast --- .../_components/error-message-content.tsx | 44 +++++++++++++++++++ ...odels.ts => use-query-provider-models.tsx} | 17 ++++++- src/request-config.tsx | 34 ++------------ 3 files changed, 62 insertions(+), 33 deletions(-) create mode 100644 src/pages/_components/error-message-content.tsx rename src/pages/maas-provider/hooks/{use-query-provider-models.ts => use-query-provider-models.tsx} (85%) diff --git a/src/pages/_components/error-message-content.tsx b/src/pages/_components/error-message-content.tsx new file mode 100644 index 00000000..08da6161 --- /dev/null +++ b/src/pages/_components/error-message-content.tsx @@ -0,0 +1,44 @@ +import { CheckCircleFilled, CopyOutlined } from '@ant-design/icons'; +import { Typography } from 'antd'; +import styled from 'styled-components'; + +const Content = styled.div` + position: relative; + .cp-btn { + position: absolute; + top: 0px; + right: -4px; + display: none; + } + &:hover .cp-btn { + display: inline-block; + } + .msg { + display: none; + } +`; + +const ErrorMessageContent: React.FC<{ errMsg: string }> = ({ errMsg }) => { + return ( + + , + + ] + }} + > + {errMsg} + + {errMsg} + + ); +}; + +export default ErrorMessageContent; diff --git a/src/pages/maas-provider/hooks/use-query-provider-models.ts b/src/pages/maas-provider/hooks/use-query-provider-models.tsx similarity index 85% rename from src/pages/maas-provider/hooks/use-query-provider-models.ts rename to src/pages/maas-provider/hooks/use-query-provider-models.tsx index 75779d27..39d7c0a4 100644 --- a/src/pages/maas-provider/hooks/use-query-provider-models.ts +++ b/src/pages/maas-provider/hooks/use-query-provider-models.tsx @@ -1,4 +1,5 @@ import { createAxiosToken } from '@/hooks/use-chunk-request'; +import ErrorMessageContent from '@/pages/_components/error-message-content'; import { useRequest } from 'ahooks'; import { message } from 'antd'; import { CancelTokenSource } from 'axios'; @@ -105,11 +106,23 @@ export const useTestProviderModel = () => { manual: true, onSuccess: (response) => { if (!response?.accessible) { - message.error(response?.error_message || 'Test model failed'); + message.error({ + content: ( + + ) + }); } }, onError: (error) => { - message.error(error?.message || 'Test model failed'); + message.error({ + content: ( + + ) + }); } } ); diff --git a/src/request-config.tsx b/src/request-config.tsx index ef6b28ae..f85276a0 100644 --- a/src/request-config.tsx +++ b/src/request-config.tsx @@ -1,25 +1,9 @@ import { userAtom } from '@/atoms/user'; import { clearAtomStorage } from '@/atoms/utils'; import { history, RequestConfig } from '@umijs/max'; -import { message, Typography } from 'antd'; -import styled from 'styled-components'; +import { message } from 'antd'; import { DEFAULT_ENTER_PAGE } from './config/settings'; - -const Content = styled.div` - position: relative; - .cp-btn { - position: absolute; - top: 0px; - right: -4px; - display: none; - } - &:hover .cp-btn { - display: inline-block; - } - .msg { - display: none; - } -`; +import ErrorMessageContent from './pages/_components/error-message-content'; // these APIs do not via the GPUSTACK_API_BASE_URL const NoBaseURLAPIs = ['/auth', '/v1', '/version', '/proxy', '/update']; @@ -42,19 +26,7 @@ export const requestConfig: RequestConfig = { if (!opts?.skipErrorHandler && response?.status) { message.error({ - content: ( - - - {errMsg} - - {errMsg} - - ) + content: }); } if (response?.status === 401) {