@ai-group/chat-sdk 2.1.8 → 2.1.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js +9 -6
- package/dist/cjs/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +2 -2
- package/dist/cjs/components/XAiSender/XAiSender.stories.js +1 -0
- package/dist/cjs/components/XAiSender/XAiSender.stories.js.map +2 -2
- package/dist/cjs/components/XAiSender/index.js +70 -70
- package/dist/cjs/components/XAiSender/index.js.map +2 -2
- package/dist/cjs/components/XAiSender/styles.js +3 -3
- package/dist/cjs/components/XAiSender/styles.js.map +1 -1
- package/dist/cjs/hooks/useADKChat.js +4 -1
- package/dist/cjs/hooks/useADKChat.js.map +2 -2
- package/dist/cjs/types/XAdkProvider.d.ts +1 -1
- package/dist/cjs/types/XAdkProvider.js.map +1 -1
- package/dist/cjs/types/XAiProvider.d.ts +2 -0
- package/dist/cjs/types/XAiProvider.js.map +2 -2
- package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js +10 -10
- package/dist/esm/components/XAdkWebProvider/XAdkWebProvider.stories.js.map +1 -1
- package/dist/esm/components/XAiSender/XAiSender.stories.js +1 -0
- package/dist/esm/components/XAiSender/XAiSender.stories.js.map +1 -1
- package/dist/esm/components/XAiSender/index.js +45 -44
- package/dist/esm/components/XAiSender/index.js.map +1 -1
- package/dist/esm/components/XAiSender/styles.js +1 -1
- package/dist/esm/components/XAiSender/styles.js.map +1 -1
- package/dist/esm/hooks/useADKChat.js +4 -1
- package/dist/esm/hooks/useADKChat.js.map +1 -1
- package/dist/esm/types/XAdkProvider.d.ts +1 -1
- package/dist/esm/types/XAdkProvider.js.map +1 -1
- package/dist/esm/types/XAiProvider.d.ts +2 -0
- package/dist/esm/types/XAiProvider.js.map +1 -1
- package/dist/umd/chat-sdk.min.js +1 -1
- package/package.json +2 -1
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/types/XAdkProvider.ts"],
|
|
4
|
-
"sourcesContent": ["import { ReactNode } from 'react';\nimport { IMessage, Success, Event, Error, SendContent, ThemeType } from '@/types';\n\n\nexport interface DebugOptions {\n url: string\n sessionId?: string;\n config: any;\n token: string;\n type?: 'agentDebug' | 'appDebug';\n onError?: (error: Error) => void;\n onSuccess?: (data: Success) => void;\n onStream?: (data: Event) => void;\n onMessage?: (content: string, data: IMessage) => void;\n}\n\n/**\n * 事件状态码枚举\n * @enum {string}\n * @version 1.0.0\n */\nexport enum EventCode {\n /** 切换会话 */\n SESSION_SWITCH = 'SESSION_SWITCH',\n /** 开启新会话 */\n SESSION_CREATE = 'SESSION_CREATE',\n}\n\n\nexport type handleEvent = {\n code: EventCode;\n message: string;\n data?: any;\n}\n/**\n * renderFooter insert 参数说明\n */\nexport interface FooterRenderArgs {\n message: IMessage;\n isLastBotMsg: boolean;\n isLastMsg: boolean;\n}\n\n/**\n * Provider 可通过 ref 暴露的方法句柄\n */\nexport interface XAdkProviderHandle {\n startChat: (content: SendContent) => void;\n stopChat: () => void;\n clearChat: () => void;\n deleteSession: (id: string) => void;\n updateSession: (id: string, title: string) => void;\n getAppInfo: () => any;\n getMessages: () => IMessage[];\n getSessions: () => any[];\n setMessages: (msgs: IMessage[]) => void;\n setCurrentSessionDetail: (id: string) => void;\n}\n\n/**\n * config.chatProps 中的配置\n */\nexport interface ChatConfig {\n /**\n * 是否展示清空按钮\n * @type {boolean}\n * @default false\n */\n clearBtnShow?: boolean;\n /**\n * 是否展示输入框\n * @type {boolean}\n * @default true\n */\n inputShow?: boolean;\n /**\n * 打字机效果速度(单位:毫秒)\n * @type {number}\n * @default 60\n * @version 1.0.0\n */\n textSpeed?: number;\n}\n\n/**\n * Provider config 整体配置结构\n */\nexport interface XAdkProviderConfig {\n session?: {\n showSessionList?: boolean;\n };\n allowUpload?: boolean;\n appNo
|
|
4
|
+
"sourcesContent": ["import { ReactNode } from 'react';\nimport { IMessage, Success, Event, Error, SendContent, ThemeType } from '@/types';\n\n\nexport interface DebugOptions {\n url: string\n sessionId?: string;\n config: any;\n token: string;\n type?: 'agentDebug' | 'appDebug';\n onError?: (error: Error) => void;\n onSuccess?: (data: Success) => void;\n onStream?: (data: Event) => void;\n onMessage?: (content: string, data: IMessage) => void;\n}\n\n/**\n * 事件状态码枚举\n * @enum {string}\n * @version 1.0.0\n */\nexport enum EventCode {\n /** 切换会话 */\n SESSION_SWITCH = 'SESSION_SWITCH',\n /** 开启新会话 */\n SESSION_CREATE = 'SESSION_CREATE',\n}\n\n\nexport type handleEvent = {\n code: EventCode;\n message: string;\n data?: any;\n}\n/**\n * renderFooter insert 参数说明\n */\nexport interface FooterRenderArgs {\n message: IMessage;\n isLastBotMsg: boolean;\n isLastMsg: boolean;\n}\n\n/**\n * Provider 可通过 ref 暴露的方法句柄\n */\nexport interface XAdkProviderHandle {\n startChat: (content: SendContent) => void;\n stopChat: () => void;\n clearChat: () => void;\n deleteSession: (id: string) => void;\n updateSession: (id: string, title: string) => void;\n getAppInfo: () => any;\n getMessages: () => IMessage[];\n getSessions: () => any[];\n setMessages: (msgs: IMessage[]) => void;\n setCurrentSessionDetail: (id: string) => void;\n}\n\n/**\n * config.chatProps 中的配置\n */\nexport interface ChatConfig {\n /**\n * 是否展示清空按钮\n * @type {boolean}\n * @default false\n */\n clearBtnShow?: boolean;\n /**\n * 是否展示输入框\n * @type {boolean}\n * @default true\n */\n inputShow?: boolean;\n /**\n * 打字机效果速度(单位:毫秒)\n * @type {number}\n * @default 60\n * @version 1.0.0\n */\n textSpeed?: number;\n}\n\n/**\n * Provider config 整体配置结构\n */\nexport interface XAdkProviderConfig {\n session?: {\n showSessionList?: boolean;\n };\n allowUpload?: boolean;\n appNo?: string;\n chatProps?: ChatConfig;\n debug?: boolean;\n}\n\n/**\n * XAdkProvider Props\n */\nexport interface XAdkProviderProps {\n /**\n * AI 服务基础地址\n */\n url?: string;\n /**\n * 认证 token\n */\n token: string;\n /**\n * 组件功能配置\n */\n config?: XAdkProviderConfig;\n /**\n * Provider 唯一标识\n */\n providerId?: string;\n /**\n * 获取应用信息\n * @type {() => any}\n * @version 1.0.0\n */\n getData: () => any;\n\n /**\n * 发送聊天消息\n * @param content - 消息内容\n * @type {(content: string) => void}\n * @version 1.0.0\n */\n chat: (content: SendContent) => void;\n /**\n * 停止聊天\n * @type {() => void}\n * @version 1.0.0\n */\n stop: () => void;\n /**\n * 消息成功回调\n */\n onSuccess?: (success: any) => void;\n /**\n * 流式消息回调\n */\n onStream?: (data: Event) => void;\n /**\n * 错误回调\n */\n onError?: (err: any) => void;\n /**\n * 每条消息回调\n */\n onMessage?: (content: string, data: IMessage) => void;\n /**\n * 事件回调\n */\n onEvent?: (event: handleEvent) => void;\n /**\n * 自定义插槽渲染函数\n */\n footer?: (args: FooterRenderArgs) => ReactNode;\n /**\n * React 子元素\n */\n children?: ReactNode;\n}\n\n// XAiSDKProps 继承 XAdkProviderProps\nexport interface XAdkSDKProps extends XAdkProviderProps {\n /**\n * 主题类型\n * @type {ThemeType}\n * @default 'default'\n * @version 1.0.0\n */\n theme?: ThemeType;\n\n /**\n * 组件属性配置\n * @type {object}\n * @default undefined\n * @version 1.0.0\n */\n componentProps?: {\n /**\n * 组件ID\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n id?: string;\n /** 支持任意 CSS 属性 */\n [key: string]: any;\n };\n}"],
|
|
5
5
|
"mappings": ";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAqBO,IAAM,YAAN,kBAAMA,eAAN;AAEL,EAAAA,WAAA,oBAAiB;AAEjB,EAAAA,WAAA,oBAAiB;AAJN,SAAAA;AAAA,GAAA;",
|
|
6
6
|
"names": ["EventCode"]
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/types/XAiProvider.ts"],
|
|
4
|
-
"sourcesContent": ["// context/ProviderContext.ts\nimport React, { ReactNode } from 'react';\nimport { AiClient } from 'src/client/base';\nimport type { ChatbotMessageFields } from './XAiChatbot';\nimport type { Messages, SendContent, SessionData, ChatConfig, ThemeType } from '@/types';\n\n/**\n * 错误码枚举(数字格式)\n * @enum {string}\n * @version 1.0.0\n */\nexport enum ErrorCodeNum {\n /** 应用下架 */\n APP_NOT_ENABLE = 'client_50017',\n /** 应用删除 */\n APP_DELETED = 'client_50017',\n /** 无该应用 */\n APP_NOT_FOUND = 'client_59999',\n /** 接口报错 */\n API_ERROR = 'client_50054',\n}\n\n/**\n * 错误码枚举\n * @enum {string}\n * @version 1.0.0\n */\nexport enum ErrorCode {\n /** 应用未启用 */\n APP_NOT_ENABLE = 'APP_NOT_ENABLE',\n /** 应用已删除 */\n APP_DELETED = 'APP_DELETED',\n /** 应用未找到 */\n APP_NOT_FOUND = 'APP_NOT_FOUND',\n /** API 错误 */\n API_ERROR = 'API_ERROR',\n}\n\n/**\n * 错误码映射表\n * @type {Record<string, {code: ErrorCode, message: string}>}\n * @version 1.0.0\n */\nexport const ErrorCodeMap = {\n client_50017: {\n code: ErrorCode.APP_NOT_ENABLE,\n message: '该应用已删除或已下架',\n },\n client_50054: {\n code: ErrorCode.API_ERROR,\n message: '应用服务端出错',\n },\n};\n\n/**\n * 成功状态码枚举\n * @enum {string}\n * @version 1.0.0\n */\nexport enum SuccessCode {\n /** 应用配置初始化成功 */\n APP_CONFIG_INIT_SUCCESS = 'APP_CONFIG_INIT_SUCCESS',\n /** 应用消息初始化成功 */\n APP_MESSAGES_INIT_SUCCESS = 'APP_MESSAGES_INIT_SUCCESS',\n}\n\n/**\n * 错误信息接口\n * @interface Error\n * @version 1.0.0\n */\nexport interface Error {\n /** 错误码 */\n code: ErrorCode;\n /** 错误信息 */\n message: string;\n}\n\n/**\n * 成功信息接口\n * @interface Success\n * @version 1.0.0\n */\nexport interface Success {\n /** 成功状态码 */\n code: SuccessCode;\n /** 成功信息 */\n message: string;\n}\n\n/**\n * XAiProvider 操作句柄接口\n * @interface XAiProviderHandle\n * @version 1.0.0\n */\nexport interface XAiProviderHandle {\n /**\n * 发送聊天消息\n * @param content - 消息内容\n * @type {(content: string) => void}\n * @version 1.0.0\n */\n chat: (content: SendContent) => void;\n\n /**\n * 停止聊天\n * @type {() => void}\n * @version 1.0.0\n */\n stopChat: () => void;\n\n /**\n * 重新发送聊天\n * @type {() => void}\n * @version 1.0.0\n */\n reChat: () => void;\n\n /**\n * 获取应用信息\n * @returns {any} 应用信息对象\n * @type {() => any}\n * @version 1.0.0\n */\n getAppInfo: () => any;\n\n /**\n * 获取消息列表\n * @returns {Messages[]} 消息数组\n * @type {() => Messages[]}\n * @version 1.0.0\n */\n getMessages: () => Messages[];\n\n /**\n * 获取会话列表\n * @returns {}\n */\n getSessions: () => SessionData[];\n\n /**\n * 重新设置当前会话\n * @param id - 会话ID\n * @type {(id: string) => void}\n * @version 1.0.0\n */\n setCurrentSessionDetail: (id: string) => void;\n}\n\nexport interface sessionConfig {\n /**\n * 是否展示会话列表\n * @type {boolean}\n * @default false\n */\n showSessionList?: boolean;\n}\n\n\n/**\n * XAiProvider 配置接口\n * @interface XAiProviderConfig\n * @version 1.0.0\n */\nexport interface XAiProviderConfig {\n /**\n * 应用唯一编号\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n appNo?: string;\n\n /**\n * 会话配置\n * @type {sessionConfig}\n */\n session?: sessionConfig;\n\n /**\n * 对话框配置\n * @type {ChatConfig}\n */\n chatProps?: ChatConfig;\n\n /**\n * 是否启用调试模式\n * @type {boolean}\n * @default false\n * @version 1.0.0\n */\n debug?: boolean;\n}\n\n/**\n * XAiProvider 组件属性接口\n * @interface XAiProviderProps\n * @version 1.0.0\n */\nexport interface XAiProviderProps {\n /**\n * AI 服务地址\n * @type {string}\n * @version 1.0.0\n */\n url: string;\n\n /**\n * 认证 token\n * @type {string}\n * @version 1.0.0\n */\n token: string;\n\n /**\n * 配置信息\n * @type {XAiProviderConfig}\n * @default undefined\n * @version 1.0.0\n */\n config?: XAiProviderConfig;\n\n /**\n * Provider 唯一标识,用于区分多个 Provider 实例\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n providerId?: string;\n\n /**\n * Token 刷新回调\n * @type {() => Promise<string>}\n * @default undefined\n * @version 1.0.0\n */\n onRefreshToken?: () => Promise<string>;\n\n /**\n * 应用无法正常渲染回调\n * @type {(error: Error) => void}\n * @default undefined\n * @version 1.0.0\n */\n onError?: (error: Error) => void;\n\n /**\n * 应用正常渲染回调\n * @type {(success: Success) => void}\n * @default undefined\n * @version 1.0.0\n */\n onSuccess?: (success: Success) => void;\n\n /**\n * 消息返回回调\n * @type {(data: Messages) => void}\n * @default undefined\n * @version 1.0.0\n */\n onMessage?: (content: string, data: Messages) => void;\n\n /**\n * 子组件\n * @type {ReactNode}\n * @version 1.0.0\n */\n children: ReactNode;\n}\n\n/**\n * XAiSDK 组件属性接口\n * @interface XAiSDKProps\n * @extends XAiProviderProps\n * @version 1.0.0\n */\nexport interface XAiSDKProps extends XAiProviderProps {\n /**\n * 主题类型\n * @type {ThemeType}\n * @default 'default'\n * @version 1.0.0\n */\n theme?: ThemeType;\n\n /**\n * 组件属性配置\n * @type {object}\n * @default undefined\n * @version 1.0.0\n */\n componentProps?: {\n /**\n * 组件ID\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n id?: string;\n /** 支持任意 CSS 属性 */\n [key: string]: any;\n };\n}\n\n/**\n * XAi 上下文类型接口\n * @interface XAiContextType\n * @extends Required<ChatbotMessageFields>\n * @version 1.0.0\n */\nexport interface XAiContextType extends Required<ChatbotMessageFields> {\n /**\n * AI 客户端实例\n * @type {AiClient | null}\n * @default null\n * @version 1.0.0\n */\n client: AiClient | null;\n\n /**\n * 认证令牌\n * @type {string}\n * @version 1.0.0\n */\n token: string;\n\n /**\n * 加载状态\n * @type {boolean}\n * @default false\n * @version 1.0.0\n */\n loading: boolean;\n\n /**\n * 错误信息\n * @type {string | null}\n * @default null\n * @version 1.0.0\n */\n error: string | null;\n}\n\n/**\n * XAi 上下文对象\n * @type {React.Context<XAiContextType | null>}\n * @version 1.0.0\n */\nexport const XAiContext = React.createContext<XAiContextType | null>(null);\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAiC;AAU1B,IAAK,eAAL,kBAAKA,kBAAL;AAEL,EAAAA,cAAA,oBAAiB;AAEjB,EAAAA,cAAA,iBAAc;AAEd,EAAAA,cAAA,mBAAgB;AAEhB,EAAAA,cAAA,eAAY;AARF,SAAAA;AAAA,GAAA;AAgBL,IAAK,YAAL,kBAAKC,eAAL;AAEL,EAAAA,WAAA,oBAAiB;AAEjB,EAAAA,WAAA,iBAAc;AAEd,EAAAA,WAAA,mBAAgB;AAEhB,EAAAA,WAAA,eAAY;AARF,SAAAA;AAAA,GAAA;AAgBL,IAAM,eAAe;AAAA,EAC1B,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AACF;AAOO,IAAK,cAAL,kBAAKC,iBAAL;AAEL,EAAAA,aAAA,6BAA0B;AAE1B,EAAAA,aAAA,+BAA4B;AAJlB,SAAAA;AAAA,GAAA;
|
|
4
|
+
"sourcesContent": ["// context/ProviderContext.ts\nimport React, { ReactNode } from 'react';\nimport { AiClient } from 'src/client/base';\nimport type { ChatbotMessageFields } from './XAiChatbot';\nimport type { Messages, SendContent, SessionData, ChatConfig, ThemeType } from '@/types';\n\n/**\n * 错误码枚举(数字格式)\n * @enum {string}\n * @version 1.0.0\n */\nexport enum ErrorCodeNum {\n /** 应用下架 */\n APP_NOT_ENABLE = 'client_50017',\n /** 应用删除 */\n APP_DELETED = 'client_50017',\n /** 无该应用 */\n APP_NOT_FOUND = 'client_59999',\n /** 接口报错 */\n API_ERROR = 'client_50054',\n}\n\n/**\n * 错误码枚举\n * @enum {string}\n * @version 1.0.0\n */\nexport enum ErrorCode {\n /** 应用未启用 */\n APP_NOT_ENABLE = 'APP_NOT_ENABLE',\n /** 应用已删除 */\n APP_DELETED = 'APP_DELETED',\n /** 应用未找到 */\n APP_NOT_FOUND = 'APP_NOT_FOUND',\n /** API 错误 */\n API_ERROR = 'API_ERROR',\n}\n\n/**\n * 错误码映射表\n * @type {Record<string, {code: ErrorCode, message: string}>}\n * @version 1.0.0\n */\nexport const ErrorCodeMap = {\n client_50017: {\n code: ErrorCode.APP_NOT_ENABLE,\n message: '该应用已删除或已下架',\n },\n client_50054: {\n code: ErrorCode.API_ERROR,\n message: '应用服务端出错',\n },\n};\n\n/**\n * 成功状态码枚举\n * @enum {string}\n * @version 1.0.0\n */\nexport enum SuccessCode {\n /** 应用配置初始化成功 */\n APP_CONFIG_INIT_SUCCESS = 'APP_CONFIG_INIT_SUCCESS',\n /** 应用消息初始化成功 */\n APP_MESSAGES_INIT_SUCCESS = 'APP_MESSAGES_INIT_SUCCESS',\n}\n\n/**\n * 错误信息接口\n * @interface Error\n * @version 1.0.0\n */\nexport interface Error {\n /** 错误码 */\n code: ErrorCode;\n /** 错误信息 */\n message: string;\n}\n\n/**\n * 成功信息接口\n * @interface Success\n * @version 1.0.0\n */\nexport interface Success {\n /** 成功状态码 */\n code: SuccessCode;\n /** 成功信息 */\n message: string;\n /** 成功数据 */\n data?: any;\n}\n\n/**\n * XAiProvider 操作句柄接口\n * @interface XAiProviderHandle\n * @version 1.0.0\n */\nexport interface XAiProviderHandle {\n /**\n * 发送聊天消息\n * @param content - 消息内容\n * @type {(content: string) => void}\n * @version 1.0.0\n */\n chat: (content: SendContent) => void;\n\n /**\n * 停止聊天\n * @type {() => void}\n * @version 1.0.0\n */\n stopChat: () => void;\n\n /**\n * 重新发送聊天\n * @type {() => void}\n * @version 1.0.0\n */\n reChat: () => void;\n\n /**\n * 获取应用信息\n * @returns {any} 应用信息对象\n * @type {() => any}\n * @version 1.0.0\n */\n getAppInfo: () => any;\n\n /**\n * 获取消息列表\n * @returns {Messages[]} 消息数组\n * @type {() => Messages[]}\n * @version 1.0.0\n */\n getMessages: () => Messages[];\n\n /**\n * 获取会话列表\n * @returns {}\n */\n getSessions: () => SessionData[];\n\n /**\n * 重新设置当前会话\n * @param id - 会话ID\n * @type {(id: string) => void}\n * @version 1.0.0\n */\n setCurrentSessionDetail: (id: string) => void;\n}\n\nexport interface sessionConfig {\n /**\n * 是否展示会话列表\n * @type {boolean}\n * @default false\n */\n showSessionList?: boolean;\n}\n\n\n/**\n * XAiProvider 配置接口\n * @interface XAiProviderConfig\n * @version 1.0.0\n */\nexport interface XAiProviderConfig {\n /**\n * 应用唯一编号\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n appNo?: string;\n\n /**\n * 会话配置\n * @type {sessionConfig}\n */\n session?: sessionConfig;\n\n /**\n * 对话框配置\n * @type {ChatConfig}\n */\n chatProps?: ChatConfig;\n\n /**\n * 是否启用调试模式\n * @type {boolean}\n * @default false\n * @version 1.0.0\n */\n debug?: boolean;\n}\n\n/**\n * XAiProvider 组件属性接口\n * @interface XAiProviderProps\n * @version 1.0.0\n */\nexport interface XAiProviderProps {\n /**\n * AI 服务地址\n * @type {string}\n * @version 1.0.0\n */\n url: string;\n\n /**\n * 认证 token\n * @type {string}\n * @version 1.0.0\n */\n token: string;\n\n /**\n * 配置信息\n * @type {XAiProviderConfig}\n * @default undefined\n * @version 1.0.0\n */\n config?: XAiProviderConfig;\n\n /**\n * Provider 唯一标识,用于区分多个 Provider 实例\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n providerId?: string;\n\n /**\n * Token 刷新回调\n * @type {() => Promise<string>}\n * @default undefined\n * @version 1.0.0\n */\n onRefreshToken?: () => Promise<string>;\n\n /**\n * 应用无法正常渲染回调\n * @type {(error: Error) => void}\n * @default undefined\n * @version 1.0.0\n */\n onError?: (error: Error) => void;\n\n /**\n * 应用正常渲染回调\n * @type {(success: Success) => void}\n * @default undefined\n * @version 1.0.0\n */\n onSuccess?: (success: Success) => void;\n\n /**\n * 消息返回回调\n * @type {(data: Messages) => void}\n * @default undefined\n * @version 1.0.0\n */\n onMessage?: (content: string, data: Messages) => void;\n\n /**\n * 子组件\n * @type {ReactNode}\n * @version 1.0.0\n */\n children: ReactNode;\n}\n\n/**\n * XAiSDK 组件属性接口\n * @interface XAiSDKProps\n * @extends XAiProviderProps\n * @version 1.0.0\n */\nexport interface XAiSDKProps extends XAiProviderProps {\n /**\n * 主题类型\n * @type {ThemeType}\n * @default 'default'\n * @version 1.0.0\n */\n theme?: ThemeType;\n\n /**\n * 组件属性配置\n * @type {object}\n * @default undefined\n * @version 1.0.0\n */\n componentProps?: {\n /**\n * 组件ID\n * @type {string}\n * @default undefined\n * @version 1.0.0\n */\n id?: string;\n /** 支持任意 CSS 属性 */\n [key: string]: any;\n };\n}\n\n/**\n * XAi 上下文类型接口\n * @interface XAiContextType\n * @extends Required<ChatbotMessageFields>\n * @version 1.0.0\n */\nexport interface XAiContextType extends Required<ChatbotMessageFields> {\n /**\n * AI 客户端实例\n * @type {AiClient | null}\n * @default null\n * @version 1.0.0\n */\n client: AiClient | null;\n\n /**\n * 认证令牌\n * @type {string}\n * @version 1.0.0\n */\n token: string;\n\n /**\n * 加载状态\n * @type {boolean}\n * @default false\n * @version 1.0.0\n */\n loading: boolean;\n\n /**\n * 错误信息\n * @type {string | null}\n * @default null\n * @version 1.0.0\n */\n error: string | null;\n}\n\n/**\n * XAi 上下文对象\n * @type {React.Context<XAiContextType | null>}\n * @version 1.0.0\n */\nexport const XAiContext = React.createContext<XAiContextType | null>(null);\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,mBAAiC;AAU1B,IAAK,eAAL,kBAAKA,kBAAL;AAEL,EAAAA,cAAA,oBAAiB;AAEjB,EAAAA,cAAA,iBAAc;AAEd,EAAAA,cAAA,mBAAgB;AAEhB,EAAAA,cAAA,eAAY;AARF,SAAAA;AAAA,GAAA;AAgBL,IAAK,YAAL,kBAAKC,eAAL;AAEL,EAAAA,WAAA,oBAAiB;AAEjB,EAAAA,WAAA,iBAAc;AAEd,EAAAA,WAAA,mBAAgB;AAEhB,EAAAA,WAAA,eAAY;AARF,SAAAA;AAAA,GAAA;AAgBL,IAAM,eAAe;AAAA,EAC1B,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AAAA,EACA,cAAc;AAAA,IACZ,MAAM;AAAA,IACN,SAAS;AAAA,EACX;AACF;AAOO,IAAK,cAAL,kBAAKC,iBAAL;AAEL,EAAAA,aAAA,6BAA0B;AAE1B,EAAAA,aAAA,+BAA4B;AAJlB,SAAAA;AAAA,GAAA;AAmSL,IAAM,aAAa,aAAAC,QAAM,cAAqC,IAAI;",
|
|
6
6
|
"names": ["ErrorCodeNum", "ErrorCode", "SuccessCode", "React"]
|
|
7
7
|
}
|
|
@@ -108,9 +108,13 @@ export var 携带历史记录实例 = {
|
|
|
108
108
|
}
|
|
109
109
|
};
|
|
110
110
|
var handleOnEvent = function handleOnEvent(event) {
|
|
111
|
-
var code = event.code
|
|
111
|
+
var code = event.code,
|
|
112
|
+
data = event.data;
|
|
113
|
+
console.warn(code);
|
|
112
114
|
if (code === 'SESSION_SWITCH') {
|
|
113
115
|
console.log(providerRef.current.getMessages());
|
|
116
|
+
} else if (code === 'APP_MESSAGES_INIT_SUCCESS') {
|
|
117
|
+
console.log(code, data);
|
|
114
118
|
}
|
|
115
119
|
};
|
|
116
120
|
return /*#__PURE__*/_jsx("div", {
|
|
@@ -128,15 +132,10 @@ export var 携带历史记录实例 = {
|
|
|
128
132
|
onError: function onError(providerError) {
|
|
129
133
|
return console.log(providerError);
|
|
130
134
|
},
|
|
131
|
-
onSuccess:
|
|
132
|
-
return console.log(appInfo);
|
|
133
|
-
},
|
|
135
|
+
onSuccess: handleOnEvent,
|
|
134
136
|
onStream: function onStream(data) {
|
|
135
137
|
return console.log(data);
|
|
136
138
|
},
|
|
137
|
-
onMessage: function onMessage(data, message) {
|
|
138
|
-
return console.log(data, message);
|
|
139
|
-
},
|
|
140
139
|
onEvent: handleOnEvent
|
|
141
140
|
}))
|
|
142
141
|
})
|
|
@@ -144,12 +143,13 @@ export var 携带历史记录实例 = {
|
|
|
144
143
|
},
|
|
145
144
|
args: {
|
|
146
145
|
url: 'https://m-poc-dev.zaxline.com',
|
|
147
|
-
token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.
|
|
146
|
+
token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiZnBRYyt5MjB0VDBwbkl1QWtWamgyQT09Iiwic2NvcGUiOlsiS3BzNDlZbncwMzBBenlsaGRZVXVRNWlUIl0sImV4cCI6MTc2ODM5NDc2MSwianRpIjoiSV85OFRHUmFXSERCWWZrTThBaTZ6LVNHYzI0IiwiY2xpZW50X2lkIjoiS3BzNDlZbncwMzBBenlsaGRZVXVRNWlUIn0.F-ICv68-LxLKRlNgXb30JSO-37Zb0ziOb-pZ1qcYXRN_ArlwU6Y0wkMJL-2ckSjqu1LHHXe-5Rd65jirT4V6zqsd23lRUAlDRGNJmbyzebhaqCe9LsiWm5s4rPMJ85tGzHsl4kHyn5hdkJLFm7VPeCYplHgmGypc1oGdv06iFbObnBiK6sHIWhetlYIaKfTZvmYIMGk2tV4qUc7oUKq-LEBRg6WKuY5gtpXwISZ0pjWr3NXogwv5UAHASv1-KrI-PriR-lfDWq0ghDKmnxZB7OdWF1xX6_2S8Lu7wBW9zNQgT1lmNZiS6irzhHE6iKTFxTXIYITInWRGc6kFSqxEbA',
|
|
148
147
|
config: {
|
|
149
|
-
appNo: '
|
|
148
|
+
appNo: 'Kps49Ynw030AzylhdYUuQ5iT',
|
|
150
149
|
session: {
|
|
151
150
|
showSessionList: true
|
|
152
|
-
}
|
|
151
|
+
},
|
|
152
|
+
allowUpload: true
|
|
153
153
|
},
|
|
154
154
|
providerId: 'demo-provider'
|
|
155
155
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","Button","XAdkWebProvider","jsx","_jsx","jsxs","_jsxs","meta","title","component","parameters","layout","docs","description","tags","argTypes","config","table","type","summary","detail","category","decorators","Story","style","padding","children","单聊天窗口实例","render","args","providerRef","useRef","handleSendMessage","_providerRef$current","current","chat","text","console","log","display","flexDirection","gap","marginRight","justifyContent","onClick","maxWidth","height","_objectSpread","ref","url","token","appNo","providerId","携带历史记录实例","_providerRef$current2","files","handleOnEvent","event","code","getMessages","width","onError","providerError","onSuccess","
|
|
1
|
+
{"version":3,"names":["React","Button","XAdkWebProvider","jsx","_jsx","jsxs","_jsxs","meta","title","component","parameters","layout","docs","description","tags","argTypes","config","table","type","summary","detail","category","decorators","Story","style","padding","children","单聊天窗口实例","render","args","providerRef","useRef","handleSendMessage","_providerRef$current","current","chat","text","console","log","display","flexDirection","gap","marginRight","justifyContent","onClick","maxWidth","height","_objectSpread","ref","url","token","appNo","providerId","携带历史记录实例","_providerRef$current2","files","handleOnEvent","event","code","data","warn","getMessages","width","onError","providerError","onSuccess","onStream","onEvent","session","showSessionList","allowUpload"],"sources":["../../../../src/components/XAdkWebProvider/XAdkWebProvider.stories.tsx"],"sourcesContent":["import React from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport { Button } from 'antd';\nimport XAdkWebProvider from './index';\n\nconst meta: Meta<typeof XAdkWebProvider> = {\n title: 'AI组件/XAdkWebProvider AI容器',\n component: XAdkWebProvider,\n parameters: {\n layout: 'centered',\n docs: {\n description: {\n component: 'AI 聊天机器人容器组件,提供全局上下文和消息管理功能。',\n },\n },\n },\n tags: ['autodocs'],\n argTypes: {\n config: {\n description: '配置信息',\n table: {\n type: {\n summary: 'XAdkWebProviderConfig',\n detail: `{\n appNo?: string; // 应用唯一编号\n }`,\n },\n category: '配置选项',\n },\n },\n },\n // 添加装饰器,确保组件有必要的上下文\n decorators: [\n (Story) => (\n <div style={{ padding: '20px' }}>\n <Story />\n </div>\n ),\n ],\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 使用 Provider 的 XAiChatbot\nexport const 单聊天窗口实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.chat) {\n providerRef.current.chat({ text: '你好,AI!' });\n } else {\n console.log('XAdkWebProvider ref 未准备好或 chat 方法不存在');\n }\n };\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={{ display: 'flex', flexDirection: 'column', gap: '12px', marginRight: '24px', justifyContent: 'center' }}>\n <Button type=\"primary\" onClick={handleSendMessage}>发送消息</Button>\n </div>\n <div style={{ maxWidth: '350px', height: '600px' }}>\n <XAdkWebProvider\n ref={providerRef}\n {...args}\n // onError={(providerError) => console.log(providerError)}\n // onMessage={(data) => console.log(data)}\n >\n </XAdkWebProvider>\n </div>\n </div>\n );\n },\n args: {\n url: 'https://m-poc-dev.zaxline.com',\n token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiVjRTT0htSm8zWmVhNFJOdWc3WFgyQT09Iiwic2NvcGUiOlsiTUZYNVR4bGhlSUtiZWtaSEtvZU9WTmxvIl0sImV4cCI6MTc2Nzk1MjM0NywianRpIjoiSHpLMll4cVdjSTA3QWtmOHlsQXYwV0w0aE5jIiwiY2xpZW50X2lkIjoiTUZYNVR4bGhlSUtiZWtaSEtvZU9WTmxvIn0.AjABoyZFxAACkfy-ywLlfaJd6YY0Ir3pBGx_-HzW9di9p_4rnptbFI4adk9pktSVtlLB0cs45SU6uzp6VCJUj9-q-MP8QBqL6i7u2HV9e-kuBJgyIZD4t0PsazpJNu4rDlBAymYzw73ptLPjCwsUkckUz4Xhy1WmR8mpmuG0nuSWzlDlWKiaPgeMhA0Cnp4BV47zplvQ-r60VkarCg9JGHQNmIkQfG3llcjc-ZK4UKVkrFZynXhcCsp1ry7TwfRnwtXwQ1kZXDmeQxWFudhVaHwthraFF-fkHmYZpyTDrZQJY2Rn9nWO59ZHNh3I6-KiKdsNzv8Jl5T_dCUVPj7l3w',\n config: {\n appNo: 'MFX5TxlheIKbekZHKoeOVNlo',\n },\n providerId: 'demo-provider',\n },\n};\n\n\n// 使用 Provider 的 XAiChatbot\nexport const 携带历史记录实例: Story = {\n render: (args) => {\n const providerRef = React.useRef<any>(null);\n\n const handleSendMessage = () => {\n if (providerRef.current?.chat) {\n providerRef.current.chat({\n text: '你好,AI!', // 上传文案\n files: [], // 如果需要上传附件\n });\n } else {\n console.log('XAdkWebProvider ref 未准备好或 chat 方法不存在');\n }\n };\n\n const handleOnEvent = (event: any) => {\n const { code, data } = event;\n console.warn(code);\n if (code === 'SESSION_SWITCH') {\n console.log(providerRef.current.getMessages());\n } else if (code === 'APP_MESSAGES_INIT_SUCCESS') {\n console.log(code, data);\n }\n };\n\n return (\n <div style={{ display: 'flex' }}>\n <div style={{ height: '600px', width: '100vw' }}>\n <XAdkWebProvider\n ref={providerRef}\n {...args}\n onError={(providerError) => console.log(providerError)}\n onSuccess={handleOnEvent}\n onStream={(data) => console.log(data)}\n onEvent={handleOnEvent}\n />\n </div>\n </div>\n );\n },\n args: {\n url: 'https://m-poc-dev.zaxline.com',\n token: 'eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1c2VyX2lkIjoiZnBRYyt5MjB0VDBwbkl1QWtWamgyQT09Iiwic2NvcGUiOlsiS3BzNDlZbncwMzBBenlsaGRZVXVRNWlUIl0sImV4cCI6MTc2ODM5NDc2MSwianRpIjoiSV85OFRHUmFXSERCWWZrTThBaTZ6LVNHYzI0IiwiY2xpZW50X2lkIjoiS3BzNDlZbncwMzBBenlsaGRZVXVRNWlUIn0.F-ICv68-LxLKRlNgXb30JSO-37Zb0ziOb-pZ1qcYXRN_ArlwU6Y0wkMJL-2ckSjqu1LHHXe-5Rd65jirT4V6zqsd23lRUAlDRGNJmbyzebhaqCe9LsiWm5s4rPMJ85tGzHsl4kHyn5hdkJLFm7VPeCYplHgmGypc1oGdv06iFbObnBiK6sHIWhetlYIaKfTZvmYIMGk2tV4qUc7oUKq-LEBRg6WKuY5gtpXwISZ0pjWr3NXogwv5UAHASv1-KrI-PriR-lfDWq0ghDKmnxZB7OdWF1xX6_2S8Lu7wBW9zNQgT1lmNZiS6irzhHE6iKTFxTXIYITInWRGc6kFSqxEbA',\n config: {\n appNo: 'Kps49Ynw030AzylhdYUuQ5iT',\n session: {\n showSessionList: true,\n },\n allowUpload: true\n },\n providerId: 'demo-provider',\n },\n};"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useState","XAiSender","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","BasicUsageStory","_useState","_useState2","_slicedToArray","files","setFiles","_useState3","_useState4","content","setContent","_useState5","_useState6","loading","setLoading","handleClear","console","info","handleChange","text","handleSendMessage","obj","log","setTimeout","style","width","border","padding","children","value","enableUpload","onChangeFiles","uploadRequest","_ref","file","onProgress","onSuccess","percent","onClear","onChange","onSubmit","onStop","footerTips","基础用法","render","args"],"sources":["../../../../src/components/XAiSender/XAiSender.stories.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport type { Attachment } from '@ant-design/x/es/attachments';\nimport XAiSender from '.';\n\nconst meta: Meta<typeof XAiSender> = {\n title: 'AI组件/XAiSender 输入框',\n component: XAiSender,\n parameters: {\n layout: 'centered',\n },\n tags: ['autodocs'],\n argTypes: {},\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 基础用法\nconst BasicUsageStory = () => {\n const [files, setFiles] = useState<Attachment[]>([]);\n const [content, setContent] = useState('');\n const [loading, setLoading] = useState(false);\n\n // 模拟清空数据\n const handleClear = () => {\n console.info('clear');\n };\n\n // 模拟输入\n const handleChange = (text: string) => {\n setContent(text);\n };\n\n // 模拟快捷短语点击\n const handleSendMessage = (obj: any) => {\n console.log(obj);\n setLoading(true);\n setTimeout(() => {\n setContent('');\n setFiles([]);\n setLoading(false);\n }, 2000);\n };\n\n return (\n <div style={{ width: 440, border: '1px solid #eee', padding: 20 }}>\n <XAiSender\n loading={loading}\n value={content}\n enableUpload\n files={files}\n onChangeFiles={setFiles}\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n onClear={handleClear}\n onChange={handleChange}\n onSubmit={handleSendMessage}\n onStop={handleClear}\n footerTips=\"内容由AI生成,无法确保真实准确,仅供参考\"\n />\n </div>\n );\n};\n\nexport const 基础用法: Story = {\n render: BasicUsageStory,\n args: {},\n};\n"],"mappings":";AAAA,OAAOA,KAAK,IAAIC,QAAQ,QAAQ,OAAO;AAGvC,OAAOC,SAAS,MAAM,GAAG;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAE1B,IAAMC,IAA4B,GAAG;EACnCC,KAAK,EAAE,oBAAoB;EAC3BC,SAAS,EAAEL,SAAS;EACpBM,UAAU,EAAE;IACVC,MAAM,EAAE;EACV,CAAC;EACDC,IAAI,EAAE,CAAC,UAAU,CAAC;EAClBC,QAAQ,EAAE,CAAC;AACb,CAAC;AAED,eAAeN,IAAI;AAGnB;AACA,IAAMO,eAAe,GAAG,SAAlBA,eAAeA,CAAA,EAAS;EAC5B,IAAAC,SAAA,GAA0BZ,QAAQ,CAAe,EAAE,CAAC;IAAAa,UAAA,GAAAC,cAAA,CAAAF,SAAA;IAA7CG,KAAK,GAAAF,UAAA;IAAEG,QAAQ,GAAAH,UAAA;EACtB,IAAAI,UAAA,GAA8BjB,QAAQ,CAAC,EAAE,CAAC;IAAAkB,UAAA,GAAAJ,cAAA,CAAAG,UAAA;IAAnCE,OAAO,GAAAD,UAAA;IAAEE,UAAU,GAAAF,UAAA;EAC1B,IAAAG,UAAA,GAA8BrB,QAAQ,CAAC,KAAK,CAAC;IAAAsB,UAAA,GAAAR,cAAA,CAAAO,UAAA;IAAtCE,OAAO,GAAAD,UAAA;IAAEE,UAAU,GAAAF,UAAA;;EAE1B;EACA,IAAMG,WAAW,GAAG,SAAdA,WAAWA,CAAA,EAAS;IACxBC,OAAO,CAACC,IAAI,CAAC,OAAO,CAAC;EACvB,CAAC;;EAED;EACA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,CAAIC,IAAY,EAAK;IACrCT,UAAU,CAACS,IAAI,CAAC;EAClB,CAAC;;EAED;EACA,IAAMC,iBAAiB,GAAG,SAApBA,iBAAiBA,CAAIC,GAAQ,EAAK;IACtCL,OAAO,CAACM,GAAG,CAACD,GAAG,CAAC;IAChBP,UAAU,CAAC,IAAI,CAAC;IAChBS,UAAU,CAAC,YAAM;MACfb,UAAU,CAAC,EAAE,CAAC;MACdJ,QAAQ,CAAC,EAAE,CAAC;MACZQ,UAAU,CAAC,KAAK,CAAC;IACnB,CAAC,EAAE,IAAI,CAAC;EACV,CAAC;EAED,oBACErB,IAAA;IAAK+B,KAAK,EAAE;MAAEC,KAAK,EAAE,GAAG;MAAEC,MAAM,EAAE,gBAAgB;MAAEC,OAAO,EAAE;IAAG,CAAE;IAAAC,QAAA,eAChEnC,IAAA,CAACF,SAAS;MACRsB,OAAO,EAAEA,OAAQ;MACjBgB,KAAK,EAAEpB,OAAQ;MACfqB,YAAY;MACZzB,KAAK,EAAEA,KAAM;MACb0B,aAAa,
|
|
1
|
+
{"version":3,"names":["React","useState","XAiSender","jsx","_jsx","meta","title","component","parameters","layout","tags","argTypes","BasicUsageStory","_useState","_useState2","_slicedToArray","files","setFiles","_useState3","_useState4","content","setContent","_useState5","_useState6","loading","setLoading","handleClear","console","info","handleChange","text","handleSendMessage","obj","log","setTimeout","style","width","border","padding","children","value","enableUpload","clearBtnShow","onChangeFiles","uploadRequest","_ref","file","onProgress","onSuccess","percent","onClear","onChange","onSubmit","onStop","footerTips","基础用法","render","args"],"sources":["../../../../src/components/XAiSender/XAiSender.stories.tsx"],"sourcesContent":["import React, { useState } from 'react';\nimport type { Meta, StoryObj } from '@storybook/react-vite';\nimport type { Attachment } from '@ant-design/x/es/attachments';\nimport XAiSender from '.';\n\nconst meta: Meta<typeof XAiSender> = {\n title: 'AI组件/XAiSender 输入框',\n component: XAiSender,\n parameters: {\n layout: 'centered',\n },\n tags: ['autodocs'],\n argTypes: {},\n};\n\nexport default meta;\ntype Story = StoryObj<typeof meta>;\n\n// 基础用法\nconst BasicUsageStory = () => {\n const [files, setFiles] = useState<Attachment[]>([]);\n const [content, setContent] = useState('');\n const [loading, setLoading] = useState(false);\n\n // 模拟清空数据\n const handleClear = () => {\n console.info('clear');\n };\n\n // 模拟输入\n const handleChange = (text: string) => {\n setContent(text);\n };\n\n // 模拟快捷短语点击\n const handleSendMessage = (obj: any) => {\n console.log(obj);\n setLoading(true);\n setTimeout(() => {\n setContent('');\n setFiles([]);\n setLoading(false);\n }, 2000);\n };\n\n return (\n <div style={{ width: 440, border: '1px solid #eee', padding: 20 }}>\n <XAiSender\n loading={loading}\n value={content}\n enableUpload\n files={files}\n clearBtnShow={true}\n onChangeFiles={setFiles}\n uploadRequest={({ file, onProgress, onSuccess }) => {\n console.info(file);\n onProgress?.({\n percent: 50,\n });\n setTimeout(() => {\n onSuccess?.({});\n }, 1000);\n }}\n onClear={handleClear}\n onChange={handleChange}\n onSubmit={handleSendMessage}\n onStop={handleClear}\n footerTips=\"内容由AI生成,无法确保真实准确,仅供参考\"\n />\n </div>\n );\n};\n\nexport const 基础用法: Story = {\n render: BasicUsageStory,\n args: {},\n};\n"],"mappings":"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"}
|
|
@@ -4,7 +4,7 @@ import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutPr
|
|
|
4
4
|
var _excluded = ["footerTips", "clearBtnShow", "value", "onChange", "onClear", "onStop", "onSubmit", "files", "enableUpload", "onChangeFiles", "uploadRequest", "loading", "disabled"];
|
|
5
5
|
import React, { useRef, useState } from 'react';
|
|
6
6
|
import { Attachments, Sender } from '@ant-design/x';
|
|
7
|
-
import { Button, Popover, Space, Tooltip } from 'antd';
|
|
7
|
+
import { Button, Popover, Space, Flex, Tooltip } from 'antd';
|
|
8
8
|
import { ArrowUpOutlined, ClearOutlined, PlusCircleOutlined } from '@ant-design/icons';
|
|
9
9
|
import clsx from 'clsx';
|
|
10
10
|
import { useChatbotContext } from "../../hooks/useProviderContext";
|
|
@@ -142,28 +142,9 @@ var XAiSender = function XAiSender(props) {
|
|
|
142
142
|
return /*#__PURE__*/_jsxs(_Fragment, {
|
|
143
143
|
children: [/*#__PURE__*/_jsx("div", {
|
|
144
144
|
className: styles.chatFooter,
|
|
145
|
-
children: /*#__PURE__*/
|
|
145
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
146
146
|
className: clsx(styles.flex, styles.gap(8)),
|
|
147
|
-
children:
|
|
148
|
-
content: clearConfirmContent,
|
|
149
|
-
title: "\u786E\u8BA4\u6E05\u7A7A\u5BF9\u8BDD",
|
|
150
|
-
trigger: "click",
|
|
151
|
-
open: clearPopoverVisible,
|
|
152
|
-
onOpenChange: setClearPopoverVisible,
|
|
153
|
-
children: /*#__PURE__*/_jsx("div", {
|
|
154
|
-
className: styles.clearBtn,
|
|
155
|
-
style: {
|
|
156
|
-
border: '1px solid #E4E7EC',
|
|
157
|
-
borderRadius: '50%',
|
|
158
|
-
height: '35px',
|
|
159
|
-
width: '35px'
|
|
160
|
-
},
|
|
161
|
-
onClick: handleClear,
|
|
162
|
-
children: /*#__PURE__*/_jsx(ClearOutlined, {
|
|
163
|
-
className: styles.text(16)
|
|
164
|
-
})
|
|
165
|
-
})
|
|
166
|
-
}), /*#__PURE__*/_jsx(Sender, _objectSpread(_objectSpread({}, resetProps), {}, {
|
|
147
|
+
children: /*#__PURE__*/_jsx(Sender, _objectSpread(_objectSpread({}, resetProps), {}, {
|
|
167
148
|
value: value,
|
|
168
149
|
className: styles.sendWrapper,
|
|
169
150
|
placeholder: "\u7EE7\u7EED\u5BF9\u8BDD...",
|
|
@@ -200,31 +181,51 @@ var XAiSender = function XAiSender(props) {
|
|
|
200
181
|
}
|
|
201
182
|
})
|
|
202
183
|
}),
|
|
203
|
-
suffix:
|
|
184
|
+
suffix: false,
|
|
185
|
+
footer: function footer(_, info) {
|
|
204
186
|
var _info$components = info.components,
|
|
205
187
|
SendButton = _info$components.SendButton,
|
|
206
188
|
LoadingButton = _info$components.LoadingButton;
|
|
207
|
-
return /*#__PURE__*/_jsxs(
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
189
|
+
return /*#__PURE__*/_jsxs(Flex, {
|
|
190
|
+
justify: "space-between",
|
|
191
|
+
children: [/*#__PURE__*/_jsx("div", {
|
|
192
|
+
children: clearBtnShow && /*#__PURE__*/_jsx(Popover, {
|
|
193
|
+
content: clearConfirmContent,
|
|
194
|
+
title: "\u786E\u8BA4\u6E05\u7A7A\u5BF9\u8BDD",
|
|
195
|
+
trigger: "click",
|
|
196
|
+
open: clearPopoverVisible,
|
|
197
|
+
onOpenChange: setClearPopoverVisible,
|
|
198
|
+
children: /*#__PURE__*/_jsx("div", {
|
|
199
|
+
className: styles.clearBtn,
|
|
200
|
+
onClick: handleClear,
|
|
201
|
+
children: /*#__PURE__*/_jsx(ClearOutlined, {
|
|
202
|
+
className: styles.text(12)
|
|
203
|
+
})
|
|
204
|
+
})
|
|
205
|
+
})
|
|
206
|
+
}), /*#__PURE__*/_jsxs(Space, {
|
|
207
|
+
size: "small",
|
|
208
|
+
style: {
|
|
209
|
+
display: 'flex',
|
|
210
|
+
alignItems: 'center'
|
|
219
211
|
},
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
212
|
+
children: [enableUpload && /*#__PURE__*/_jsxs(_Fragment, {
|
|
213
|
+
children: [uploadButton, /*#__PURE__*/_jsx("div", {
|
|
214
|
+
className: styles.divider
|
|
215
|
+
})]
|
|
216
|
+
}), loading ? /*#__PURE__*/_jsx(LoadingButton, {
|
|
217
|
+
onClick: function onClick() {
|
|
218
|
+
return onStop === null || onStop === void 0 ? void 0 : onStop();
|
|
219
|
+
},
|
|
220
|
+
className: styles.stopButton
|
|
221
|
+
}) : /*#__PURE__*/_jsx(SendButton, {
|
|
222
|
+
className: styles.sendButton,
|
|
223
|
+
type: "primary",
|
|
224
|
+
icon: /*#__PURE__*/_jsx(ArrowUpOutlined, {
|
|
225
|
+
className: styles.text(20)
|
|
226
|
+
}),
|
|
227
|
+
disabled: disabled
|
|
228
|
+
})]
|
|
228
229
|
})]
|
|
229
230
|
});
|
|
230
231
|
},
|
|
@@ -235,7 +236,7 @@ var XAiSender = function XAiSender(props) {
|
|
|
235
236
|
onCancel: function onCancel() {
|
|
236
237
|
onStop === null || onStop === void 0 || onStop();
|
|
237
238
|
}
|
|
238
|
-
}))
|
|
239
|
+
}))
|
|
239
240
|
})
|
|
240
241
|
}), footerTips && /*#__PURE__*/_jsx("div", {
|
|
241
242
|
className: styles.footerTips,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useRef","useState","Attachments","Sender","Button","Popover","Space","Tooltip","ArrowUpOutlined","ClearOutlined","PlusCircleOutlined","clsx","useChatbotContext","useStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","XAiSender","props","_useChatbotContext","mergedProps","_ref","footerTips","clearBtnShow","value","onChange","onClear","onStop","onSubmit","files","enableUpload","onChangeFiles","uploadRequest","_ref$loading","loading","propLoading","disabled","resetProps","_objectWithoutProperties","_excluded","senderRef","attachmentsRef","_useState","_useState2","_slicedToArray","clearPopoverVisible","setClearPopoverVisible","styles","handleSend","trim","text","fileInputRef","handleClear","cancelClear","confirmClear","clearConfirmContent","className","p","children","mb","mt","popoverFooter","size","onClick","type","danger","uploadButton","flexCenterGap2","placement","title","color","variant","shape","icon","style","fontSize","current","_fileInputRef$current","click","ref","multiple","e","fileList","target","length","i","_attachmentsRef$curre","file","upload","display","accept","chatFooter","flex","gap","content","trigger","open","onOpenChange","clearBtn","border","borderRadius","height","width","_objectSpread","sendWrapper","placeholder","header","Header","closable","forceRender","padding","customRequest","items","_ref2","getDropContainer","_senderRef$current","nativeElement","suffix","_","info","_info$components","components","SendButton","LoadingButton","paddingBottom","divider","stopButton","sendButton","v","onCancel"],"sources":["../../../../src/components/XAiSender/index.tsx"],"sourcesContent":["import React, {\n useRef,\n useState,\n} from 'react';\nimport {\n Attachments,\n Sender,\n} from '@ant-design/x';\nimport {\n Button,\n GetRef,\n Popover,\n Space,\n Tooltip,\n} from 'antd';\nimport {\n ArrowUpOutlined,\n ClearOutlined,\n PlusCircleOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport { AttachmentsRef } from '@ant-design/x/es/attachments';\nimport {\n XAiSenderProps,\n} from '@/types';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { useStyles } from './styles';\n\nconst XAiSender: React.FC<XAiSenderProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n const {\n footerTips,\n clearBtnShow,\n value,\n onChange,\n onClear,\n onStop,\n onSubmit,\n files,\n enableUpload,\n onChangeFiles,\n uploadRequest,\n loading: propLoading = false,\n disabled,\n ...resetProps\n } = mergedProps as XAiSenderProps;\n const senderRef = useRef<GetRef<typeof Sender>>(null);\n const attachmentsRef = useRef<AttachmentsRef>(null);\n\n // 如果在 Provider 中,使用 Provider 的状态\n const loading = mergedProps.loading || propLoading;\n const [clearPopoverVisible, setClearPopoverVisible] = useState(false); // 气泡卡片显隐藏\n const styles = useStyles();\n\n // 触发发送\n const handleSend = () => {\n if (value && value.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSubmit?.({\n text: value,\n files: files || [],\n });\n }\n };\n\n // 文件上传按钮引用\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // 点击清除按钮\n const handleClear = () => {\n setClearPopoverVisible(true);\n };\n\n // 取消清除\n const cancelClear = () => {\n setClearPopoverVisible(false);\n };\n\n // 确认清除\n const confirmClear = () => {\n onClear?.();\n setClearPopoverVisible(false);\n };\n\n // 清空按钮提示文案\n const clearConfirmContent = (\n <div className={styles.p('2px')}>\n <p className={clsx(styles.mb(14), styles.mt(0))}>确认清除所有聊天记录并重置会话!</p>\n <div className={styles.popoverFooter}>\n <Button size=\"small\" onClick={cancelClear}>\n 取消\n </Button>\n <Button size=\"small\" type=\"primary\" danger onClick={confirmClear}>\n 确认\n </Button>\n </div>\n </div>\n );\n\n // 自定义上传按钮\n const uploadButton = (\n <div className={styles.flexCenterGap2}>\n <Tooltip\n placement=\"top\"\n title=\"支持图片、文档等上传\"\n >\n <Button\n color=\"default\"\n variant=\"text\"\n shape=\"circle\"\n size=\"small\"\n icon={<PlusCircleOutlined style={{ fontSize: 20, color: '#949494' }} />}\n onClick={() => {\n if (fileInputRef.current) {\n fileInputRef.current?.click();\n }\n }}\n />\n <input\n type=\"file\"\n ref={fileInputRef}\n multiple\n onChange={(e) => {\n const fileList = e.target.files || [];\n if (!fileList.length) return;\n for (let i = 0; i < fileList.length; i++) {\n const file = fileList[i];\n attachmentsRef.current?.upload(file);\n }\n e.target.value = '';\n }}\n style={{ display: 'none' }}\n accept=\"*/*\"\n />\n </Tooltip>\n </div>\n );\n\n return (\n <>\n <div className={styles.chatFooter}>\n <div className={clsx(styles.flex, styles.gap(8))}>\n {/* 清空按钮 */}\n {clearBtnShow && (\n <Popover\n content={clearConfirmContent}\n title=\"确认清空对话\"\n trigger=\"click\"\n open={clearPopoverVisible}\n onOpenChange={setClearPopoverVisible}\n >\n <div\n className={styles.clearBtn}\n style={{ border: '1px solid #E4E7EC', borderRadius: '50%', height: '35px', width: '35px' }}\n onClick={handleClear}\n >\n <ClearOutlined className={styles.text(16)} />\n </div>\n </Popover>\n )}\n {/* 普通文本输入 */}\n <Sender\n {...resetProps}\n value={value}\n className={styles.sendWrapper}\n placeholder=\"继续对话...\"\n disabled={disabled}\n loading={loading}\n ref={senderRef}\n header={enableUpload && (\n <Sender.Header\n closable={false}\n forceRender\n open={!!files?.length}\n styles={{\n content: { padding: 0 },\n }}\n >\n <Attachments\n ref={attachmentsRef}\n customRequest={uploadRequest}\n multiple\n items={files}\n // imageProps={{\n // preview: {\n // mask: true,\n // },\n // }}\n onChange={({ fileList }) => {\n onChangeFiles?.(fileList);\n }}\n getDropContainer={() => senderRef.current?.nativeElement}\n />\n </Sender.Header>\n )}\n suffix={(_, info) => {\n const { SendButton, LoadingButton } = info.components;\n return (\n <Space size=\"small\" style={{ paddingBottom: '5px' }}>\n {enableUpload && (\n <>\n {uploadButton}\n <div className={styles.divider} />\n </>\n )}\n {loading\n ? (\n <LoadingButton onClick={() => onStop?.()} className={styles.stopButton} />\n )\n : (\n <SendButton\n className={styles.sendButton}\n type=\"primary\"\n icon={<ArrowUpOutlined className={styles.text(20)} />}\n disabled={disabled}\n />\n )}\n </Space>\n );\n }}\n onChange={(v) => {\n onChange?.(v);\n }}\n onSubmit={handleSend}\n onCancel={() => {\n onStop?.();\n }}\n />\n </div>\n </div>\n { footerTips && <div className={styles.footerTips}>{footerTips}</div>}\n </>\n );\n};\n\nexport default XAiSender;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["React","useRef","useState","Attachments","Sender","Button","Popover","Space","Flex","Tooltip","ArrowUpOutlined","ClearOutlined","PlusCircleOutlined","clsx","useChatbotContext","useStyles","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","XAiSender","props","_useChatbotContext","mergedProps","_ref","footerTips","clearBtnShow","value","onChange","onClear","onStop","onSubmit","files","enableUpload","onChangeFiles","uploadRequest","_ref$loading","loading","propLoading","disabled","resetProps","_objectWithoutProperties","_excluded","senderRef","attachmentsRef","_useState","_useState2","_slicedToArray","clearPopoverVisible","setClearPopoverVisible","styles","handleSend","trim","text","fileInputRef","handleClear","cancelClear","confirmClear","clearConfirmContent","className","p","children","mb","mt","popoverFooter","size","onClick","type","danger","uploadButton","flexCenterGap2","placement","title","color","variant","shape","icon","style","fontSize","current","_fileInputRef$current","click","ref","multiple","e","fileList","target","length","i","_attachmentsRef$curre","file","upload","display","accept","chatFooter","flex","gap","_objectSpread","sendWrapper","placeholder","header","Header","closable","forceRender","open","content","padding","customRequest","items","_ref2","getDropContainer","_senderRef$current","nativeElement","suffix","footer","_","info","_info$components","components","SendButton","LoadingButton","justify","trigger","onOpenChange","clearBtn","alignItems","divider","stopButton","sendButton","v","onCancel"],"sources":["../../../../src/components/XAiSender/index.tsx"],"sourcesContent":["import React, {\n useRef,\n useState,\n} from 'react';\nimport {\n Attachments,\n Sender,\n} from '@ant-design/x';\nimport {\n Button,\n GetRef,\n Popover,\n Space,\n Flex,\n Tooltip,\n} from 'antd';\nimport {\n ArrowUpOutlined,\n ClearOutlined,\n PlusCircleOutlined,\n} from '@ant-design/icons';\nimport clsx from 'clsx';\nimport { AttachmentsRef } from '@ant-design/x/es/attachments';\nimport {\n XAiSenderProps,\n} from '@/types';\nimport { useChatbotContext } from '@/hooks/useProviderContext';\nimport { useStyles } from './styles';\n\nconst XAiSender: React.FC<XAiSenderProps> = (props) => {\n // 使用新的 Hook 来处理 Provider 上下文\n const { mergedProps } = useChatbotContext(props);\n const {\n footerTips,\n clearBtnShow,\n value,\n onChange,\n onClear,\n onStop,\n onSubmit,\n files,\n enableUpload,\n onChangeFiles,\n uploadRequest,\n loading: propLoading = false,\n disabled,\n ...resetProps\n } = mergedProps as XAiSenderProps;\n const senderRef = useRef<GetRef<typeof Sender>>(null);\n const attachmentsRef = useRef<AttachmentsRef>(null);\n\n // 如果在 Provider 中,使用 Provider 的状态\n const loading = mergedProps.loading || propLoading;\n const [clearPopoverVisible, setClearPopoverVisible] = useState(false); // 气泡卡片显隐藏\n const styles = useStyles();\n\n // 触发发送\n const handleSend = () => {\n if (value && value.trim()) {\n // 直接使用合并后的 onSend,自动处理 Provider 和独立模式\n onSubmit?.({\n text: value,\n files: files || [],\n });\n }\n };\n\n // 文件上传按钮引用\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n // 点击清除按钮\n const handleClear = () => {\n setClearPopoverVisible(true);\n };\n\n // 取消清除\n const cancelClear = () => {\n setClearPopoverVisible(false);\n };\n\n // 确认清除\n const confirmClear = () => {\n onClear?.();\n setClearPopoverVisible(false);\n };\n\n // 清空按钮提示文案\n const clearConfirmContent = (\n <div className={styles.p('2px')}>\n <p className={clsx(styles.mb(14), styles.mt(0))}>确认清除所有聊天记录并重置会话!</p>\n <div className={styles.popoverFooter}>\n <Button size=\"small\" onClick={cancelClear}>\n 取消\n </Button>\n <Button size=\"small\" type=\"primary\" danger onClick={confirmClear}>\n 确认\n </Button>\n </div>\n </div>\n );\n\n // 自定义上传按钮\n const uploadButton = (\n <div className={styles.flexCenterGap2}>\n <Tooltip\n placement=\"top\"\n title=\"支持图片、文档等上传\"\n >\n <Button\n color=\"default\"\n variant=\"text\"\n shape=\"circle\"\n size=\"small\"\n icon={<PlusCircleOutlined style={{ fontSize: 20, color: '#949494' }} />}\n onClick={() => {\n if (fileInputRef.current) {\n fileInputRef.current?.click();\n }\n }}\n />\n <input\n type=\"file\"\n ref={fileInputRef}\n multiple\n onChange={(e) => {\n const fileList = e.target.files || [];\n if (!fileList.length) return;\n for (let i = 0; i < fileList.length; i++) {\n const file = fileList[i];\n attachmentsRef.current?.upload(file);\n }\n e.target.value = '';\n }}\n style={{ display: 'none' }}\n accept=\"*/*\"\n />\n </Tooltip>\n </div>\n );\n\n return (\n <>\n <div className={styles.chatFooter}>\n <div className={clsx(styles.flex, styles.gap(8))}>\n {/* 普通文本输入 */}\n <Sender\n {...resetProps}\n value={value}\n className={styles.sendWrapper}\n placeholder=\"继续对话...\"\n disabled={disabled}\n loading={loading}\n ref={senderRef}\n header={enableUpload && (\n <Sender.Header\n closable={false}\n forceRender\n open={!!files?.length}\n styles={{\n content: { padding: 0 },\n }}\n >\n <Attachments\n ref={attachmentsRef}\n customRequest={uploadRequest}\n multiple\n items={files}\n // imageProps={{\n // preview: {\n // mask: true,\n // },\n // }}\n onChange={({ fileList }) => {\n onChangeFiles?.(fileList);\n }}\n getDropContainer={() => senderRef.current?.nativeElement}\n />\n </Sender.Header>\n )}\n suffix={false}\n footer={(_, info) => {\n const { SendButton, LoadingButton } = info.components;\n return (\n <Flex justify=\"space-between\">\n <div>\n {/* 清空按钮 */}\n {clearBtnShow && (\n <Popover\n content={clearConfirmContent}\n title=\"确认清空对话\"\n trigger=\"click\"\n open={clearPopoverVisible}\n onOpenChange={setClearPopoverVisible}\n >\n <div\n className={styles.clearBtn}\n onClick={handleClear}\n >\n <ClearOutlined className={styles.text(12)} />\n </div>\n </Popover>\n )}\n </div>\n <Space size=\"small\" style={{ display: 'flex', alignItems: 'center'}}>\n {enableUpload && (\n <>\n {uploadButton}\n <div className={styles.divider} />\n </>\n )}\n {loading\n ? (\n <LoadingButton onClick={() => onStop?.()} className={styles.stopButton} />\n )\n : (\n <SendButton\n className={styles.sendButton}\n type=\"primary\"\n icon={<ArrowUpOutlined className={styles.text(20)} />}\n disabled={disabled}\n />\n )}\n </Space>\n </Flex>\n );\n }}\n onChange={(v) => {\n onChange?.(v);\n }}\n onSubmit={handleSend}\n onCancel={() => {\n onStop?.();\n }}\n />\n </div>\n </div>\n { footerTips && <div className={styles.footerTips}>{footerTips}</div>}\n </>\n );\n};\n\nexport default XAiSender;\n"],"mappings":"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"}
|
|
@@ -10,7 +10,7 @@ export var useStyles = withBasicStyles(function () {
|
|
|
10
10
|
popoverFooter: css(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n display: flex;\n gap: 8px;\n justify-content: end;\n "]))),
|
|
11
11
|
sendButton: css(_templateObject4 || (_templateObject4 = _taggedTemplateLiteral(["\n width: 23px !important;\n height: 23px !important;\n padding: 0 !important;\n min-width: 23px !important;\n min-height: 23px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #000000;\n border: none;\n border-radius: 20px;\n color: white;\n font-weight: 600;\n cursor: pointer;\n transition: background-color 0.2s ease;\n box-sizing: border-box;\n &:hover {\n background-color: #005ecb;\n }\n &:disabled {\n background-color: ", ";\n cursor: not-allowed;\n }\n "])), lightBlue),
|
|
12
12
|
uploadBtn: css(_templateObject5 || (_templateObject5 = _taggedTemplateLiteral(["\n margin-left: 8px;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: ", ";\n color: white;\n font-weight: 700;\n font-size: 22px;\n line-height: 32px;\n text-align: center;\n cursor: pointer;\n border: none;\n user-select: none;\n &:hover {\n background-color: #005ecb;\n }\n "])), primaryBlue),
|
|
13
|
-
clearBtn: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border: 1px solid rgb(228, 231, 236);\n border-radius:
|
|
13
|
+
clearBtn: css(_templateObject6 || (_templateObject6 = _taggedTemplateLiteral(["\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border: 1px solid rgb(228, 231, 236);\n border-radius: 50%;\n width: 28px;\n height: 28px;\n box-sizing: border-box;\n "]))),
|
|
14
14
|
stopButton: css(_templateObject7 || (_templateObject7 = _taggedTemplateLiteral(["\n width: 23px !important;\n height: 23px !important;\n padding: 0 !important;\n min-width: 23px !important;\n min-height: 23px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n "]))),
|
|
15
15
|
divider: css(_templateObject8 || (_templateObject8 = _taggedTemplateLiteral(["\n width: 1px;\n height: 15px;\n margin-left: 3px;\n margin-right: 3px;\n background: #D0D5DD;\n "]))),
|
|
16
16
|
sendWrapper: css(_templateObject9 || (_templateObject9 = _taggedTemplateLiteral(["\n flex: 1;\n border-radius: 26px;\n .ant-attachment-list-card-type-preview {\n width: 52px;\n height: 52px;\n }\n .ant-attachment .ant-attachment-list-upload-btn {\n width: 52px;\n height: 52px;\n font-size: 24px;\n }\n .ant-attachment-list-card-type-overview {\n padding: 9px;\n line-height: 1;\n }\n .ant-attachment-list-card-type-overview .ant-attachment-list-card-icon {\n display: flex;\n padding-top: 0px;\n }\n .ant-attachment-list-card .ant-attachment-list-card-name {\n margin-bottom: 4px;\n }\n .ant-attachment-list-card-motion-leave-active {\n display: none;\n }\n .ant-progress-inner {\n width: 44px!important;\n height: 44px!important;\n }\n .ant-progress-text {\n font-size: 12px;\n }\n "])))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["css","withBasicStyles","lightBlue","primaryBlue","useStyles","chatFooter","_templateObject","_taggedTemplateLiteral","footerTips","_templateObject2","popoverFooter","_templateObject3","sendButton","_templateObject4","uploadBtn","_templateObject5","clearBtn","_templateObject6","stopButton","_templateObject7","divider","_templateObject8","sendWrapper","_templateObject9"],"sources":["../../../../src/components/XAiSender/styles.tsx"],"sourcesContent":["/* eslint-disable import/prefer-default-export */\nimport { css } from '@emotion/css';\nimport { withBasicStyles, lightBlue, primaryBlue } from '@/styles/common';\n\nexport const useStyles = withBasicStyles(() => ({\n chatFooter: css`\n gap: 8px;\n position: relatative;\n z-index: 10;\n padding: 0 20px 10px 20px;\n `,\n\n footerTips: css`\n display: flex;\n align-items:center;\n justify-content: center;\n font-size: 12px;\n padding-bottom: 5px;\n color: rgba(0,0,0,0.4);\n `,\n\n popoverFooter: css`\n display: flex;\n gap: 8px;\n justify-content: end;\n `,\n\n sendButton: css`\n width: 23px !important;\n height: 23px !important;\n padding: 0 !important;\n min-width: 23px !important;\n min-height: 23px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #000000;\n border: none;\n border-radius: 20px;\n color: white;\n font-weight: 600;\n cursor: pointer;\n transition: background-color 0.2s ease;\n box-sizing: border-box;\n &:hover {\n background-color: #005ecb;\n }\n &:disabled {\n background-color: ${lightBlue};\n cursor: not-allowed;\n }\n `,\n\n uploadBtn: css`\n margin-left: 8px;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: ${primaryBlue};\n color: white;\n font-weight: 700;\n font-size: 22px;\n line-height: 32px;\n text-align: center;\n cursor: pointer;\n border: none;\n user-select: none;\n &:hover {\n background-color: #005ecb;\n }\n `,\n\n clearBtn: css`\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border: 1px solid rgb(228, 231, 236);\n border-radius:
|
|
1
|
+
{"version":3,"names":["css","withBasicStyles","lightBlue","primaryBlue","useStyles","chatFooter","_templateObject","_taggedTemplateLiteral","footerTips","_templateObject2","popoverFooter","_templateObject3","sendButton","_templateObject4","uploadBtn","_templateObject5","clearBtn","_templateObject6","stopButton","_templateObject7","divider","_templateObject8","sendWrapper","_templateObject9"],"sources":["../../../../src/components/XAiSender/styles.tsx"],"sourcesContent":["/* eslint-disable import/prefer-default-export */\nimport { css } from '@emotion/css';\nimport { withBasicStyles, lightBlue, primaryBlue } from '@/styles/common';\n\nexport const useStyles = withBasicStyles(() => ({\n chatFooter: css`\n gap: 8px;\n position: relatative;\n z-index: 10;\n padding: 0 20px 10px 20px;\n `,\n\n footerTips: css`\n display: flex;\n align-items:center;\n justify-content: center;\n font-size: 12px;\n padding-bottom: 5px;\n color: rgba(0,0,0,0.4);\n `,\n\n popoverFooter: css`\n display: flex;\n gap: 8px;\n justify-content: end;\n `,\n\n sendButton: css`\n width: 23px !important;\n height: 23px !important;\n padding: 0 !important;\n min-width: 23px !important;\n min-height: 23px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n background-color: #000000;\n border: none;\n border-radius: 20px;\n color: white;\n font-weight: 600;\n cursor: pointer;\n transition: background-color 0.2s ease;\n box-sizing: border-box;\n &:hover {\n background-color: #005ecb;\n }\n &:disabled {\n background-color: ${lightBlue};\n cursor: not-allowed;\n }\n `,\n\n uploadBtn: css`\n margin-left: 8px;\n width: 32px;\n height: 32px;\n border-radius: 50%;\n background-color: ${primaryBlue};\n color: white;\n font-weight: 700;\n font-size: 22px;\n line-height: 32px;\n text-align: center;\n cursor: pointer;\n border: none;\n user-select: none;\n &:hover {\n background-color: #005ecb;\n }\n `,\n\n clearBtn: css`\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n border: 1px solid rgb(228, 231, 236);\n border-radius: 50%;\n width: 28px;\n height: 28px;\n box-sizing: border-box;\n `,\n\n stopButton: css`\n width: 23px !important;\n height: 23px !important;\n padding: 0 !important;\n min-width: 23px !important;\n min-height: 23px !important;\n display: flex;\n align-items: center;\n justify-content: center;\n `,\n\n divider: css`\n width: 1px;\n height: 15px;\n margin-left: 3px;\n margin-right: 3px;\n background: #D0D5DD;\n `,\n\n sendWrapper: css`\n flex: 1;\n border-radius: 26px;\n .ant-attachment-list-card-type-preview {\n width: 52px;\n height: 52px;\n }\n .ant-attachment .ant-attachment-list-upload-btn {\n width: 52px;\n height: 52px;\n font-size: 24px;\n }\n .ant-attachment-list-card-type-overview {\n padding: 9px;\n line-height: 1;\n }\n .ant-attachment-list-card-type-overview .ant-attachment-list-card-icon {\n display: flex;\n padding-top: 0px;\n }\n .ant-attachment-list-card .ant-attachment-list-card-name {\n margin-bottom: 4px;\n }\n .ant-attachment-list-card-motion-leave-active {\n display: none;\n }\n .ant-progress-inner {\n width: 44px!important;\n height: 44px!important;\n }\n .ant-progress-text {\n font-size: 12px;\n }\n `,\n}));\n"],"mappings":";;AAAA;AACA,SAASA,GAAG,QAAQ,cAAc;AAClC,SAASC,eAAe,EAAEC,SAAS,EAAEC,WAAW;AAEhD,OAAO,IAAMC,SAAS,GAAGH,eAAe,CAAC;EAAA,OAAO;IAC9CI,UAAU,EAAEL,GAAG,CAAAM,eAAA,KAAAA,eAAA,GAAAC,sBAAA,wGAKd;IAEDC,UAAU,EAAER,GAAG,CAAAS,gBAAA,KAAAA,gBAAA,GAAAF,sBAAA,oKAOd;IAEDG,aAAa,EAAEV,GAAG,CAAAW,gBAAA,KAAAA,gBAAA,GAAAJ,sBAAA,0EAIjB;IAEDK,UAAU,EAAEZ,GAAG,CAAAa,gBAAA,KAAAA,gBAAA,GAAAN,sBAAA,slBAqBSL,SAAS,CAGhC;IAEDY,SAAS,EAAEd,GAAG,CAAAe,gBAAA,KAAAA,gBAAA,GAAAR,sBAAA,yWAKQJ,WAAW,CAYhC;IAEDa,QAAQ,EAAEhB,GAAG,CAAAiB,gBAAA,KAAAA,gBAAA,GAAAV,sBAAA,oPAUZ;IAEDW,UAAU,EAAElB,GAAG,CAAAmB,gBAAA,KAAAA,gBAAA,GAAAZ,sBAAA,kPASd;IAEDa,OAAO,EAAEpB,GAAG,CAAAqB,gBAAA,KAAAA,gBAAA,GAAAd,sBAAA,yHAMX;IAEDe,WAAW,EAAEtB,GAAG,CAAAuB,gBAAA,KAAAA,gBAAA,GAAAhB,sBAAA;EAkClB,CAAC;AAAA,CAAC,CAAC"}
|
|
@@ -765,7 +765,10 @@ function useADKChat(_ref) {
|
|
|
765
765
|
if (!initialized) {
|
|
766
766
|
onSuccess === null || onSuccess === void 0 || onSuccess({
|
|
767
767
|
code: SuccessCode.APP_MESSAGES_INIT_SUCCESS,
|
|
768
|
-
message: '初始化聊天记录成功'
|
|
768
|
+
message: '初始化聊天记录成功',
|
|
769
|
+
data: {
|
|
770
|
+
sessionId: sessionId
|
|
771
|
+
}
|
|
769
772
|
});
|
|
770
773
|
setInitialized(true);
|
|
771
774
|
}
|