/* * Copyright 2025 coze-dev Authors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import { type ReactNode } from 'react'; import { useShallow } from 'zustand/react/shallow'; import classNames from 'classnames'; import { SingleSheet } from '@coze-agent-ide/space-bot/component'; import { I18n } from '@coze-arch/i18n'; import { type BotPageFromEnum } from '@coze-arch/bot-typings/common'; import { usePageRuntimeStore } from '@coze-studio/bot-detail-store/page-runtime'; import { useBotSkillStore } from '@coze-studio/bot-detail-store/bot-skill'; import { BotDebugChatArea } from '@coze-agent-ide/chat-debug-area'; import s from '../../../index.module.less'; export interface AgentChatAreaProps { renderChatTitleNode?: (params: { pageFrom: BotPageFromEnum | undefined; showBackground: boolean; }) => ReactNode; chatSlot?: ReactNode; chatHeaderClassName?: string; chatAreaReadOnly?: boolean; } export const AgentChatArea: React.FC = ({ renderChatTitleNode, chatSlot, chatHeaderClassName, chatAreaReadOnly, }) => { const { showBackground } = useBotSkillStore( useShallow(({ backgroundImageInfoList }) => ({ showBackground: Boolean( backgroundImageInfoList?.[0]?.mobile_background_image?.origin_image_url, ), })), ); const { pageFrom } = usePageRuntimeStore( useShallow(state => ({ pageFrom: state.pageFrom, })), ); return ( (
{chatSlot}
)} /> ); };