diff --git a/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/MessageFromUrl.tsx b/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/MessageFromUrl.tsx new file mode 100644 index 0000000000000..f46a2f57d382e --- /dev/null +++ b/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/MessageFromUrl.tsx @@ -0,0 +1,31 @@ +'use client'; + +import { useSearchParams } from 'next/navigation'; +import { useEffect } from 'react'; + +import { useSendMessage } from '@/features/ChatInput/useSend'; +import { useChatStore } from '@/store/chat'; + +const MessageFromUrl = () => { + const updateInputMessage = useChatStore((s) => s.updateInputMessage); + const { send: sendMessage } = useSendMessage(); + const searchParams = useSearchParams(); + + useEffect(() => { + const message = searchParams.get('message'); + if (message) { + // Remove message from URL + const params = new URLSearchParams(searchParams.toString()); + params.delete('message'); + const newUrl = `${window.location.pathname}?${params.toString()}`; + window.history.replaceState({}, '', newUrl); + + updateInputMessage(message); + sendMessage(); + } + }, [searchParams, updateInputMessage, sendMessage]); + + return null; +}; + +export default MessageFromUrl; diff --git a/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/index.tsx b/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/index.tsx index e6557fa1f32d5..20fa17dc6d4ab 100644 --- a/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/index.tsx +++ b/src/app/[variants]/(main)/chat/(workspace)/@conversation/features/ChatInput/Desktop/Footer/index.tsx @@ -1,7 +1,7 @@ import { Button, Space } from 'antd'; import { createStyles } from 'antd-style'; import { rgba } from 'polished'; -import { memo, useEffect, useState } from 'react'; +import { Suspense, memo, useEffect, useState } from 'react'; import { useTranslation } from 'react-i18next'; import { Flexbox } from 'react-layout-kit'; @@ -13,6 +13,7 @@ import { useChatStore } from '@/store/chat'; import { chatSelectors } from '@/store/chat/selectors'; import { isMacOS } from '@/utils/platform'; +import MessageFromUrl from './MessageFromUrl'; import SendMore from './SendMore'; import ShortcutHint from './ShortcutHint'; @@ -67,49 +68,54 @@ const Footer = memo(({ onExpandChange, expand }) => { }, [setIsMac]); return ( - - - {expand && } - - - - - - {isAIGenerating ? ( - - ) : ( - + <> + + + + + + {expand && } + + + + + + {isAIGenerating ? ( - - - )} + ) : ( + + + + + )} + - + ); });