@@ -20,6 +20,7 @@ import Cookies from 'js-cookie';
2020import { debounce } from '~/utils/debounce' ;
2121import { useSettings } from '~/lib/hooks/useSettings' ;
2222import type { ProviderInfo } from '~/types/model' ;
23+ import { useSearchParams } from '@remix-run/react' ;
2324
2425const toastAnimation = cssTransition ( {
2526 enter : 'animated fadeInRight' ,
@@ -93,6 +94,7 @@ export const ChatImpl = memo(
9394 const [ uploadedFiles , setUploadedFiles ] = useState < File [ ] > ( [ ] ) ; // Move here
9495 const [ imageDataList , setImageDataList ] = useState < string [ ] > ( [ ] ) ; // Move here
9596 const { activeProviders } = useSettings ( ) ;
97+ const [ searchParams , setSearchParams ] = useSearchParams ( ) ;
9698
9799 const [ model , setModel ] = useState ( ( ) => {
98100 const savedModel = Cookies . get ( 'selectedModel' ) ;
@@ -126,6 +128,24 @@ export const ChatImpl = memo(
126128 initialMessages,
127129 initialInput : Cookies . get ( PROMPT_COOKIE_KEY ) || '' ,
128130 } ) ;
131+ useEffect ( ( ) => {
132+ const prompt = searchParams . get ( 'prompt' ) ;
133+ console . log ( prompt , searchParams , model , provider ) ;
134+
135+ if ( prompt ) {
136+ setSearchParams ( { } ) ;
137+ runAnimation ( ) ;
138+ append ( {
139+ role : 'user' ,
140+ content : [
141+ {
142+ type : 'text' ,
143+ text : `[Model: ${ model } ]\n\n[Provider: ${ provider . name } ]\n\n${ prompt } ` ,
144+ } ,
145+ ] as any , // Type assertion to bypass compiler check
146+ } ) ;
147+ }
148+ } , [ model , provider , searchParams ] ) ;
129149
130150 const { enhancingPrompt, promptEnhanced, enhancePrompt, resetEnhancer } = usePromptEnhancer ( ) ;
131151 const { parsedMessages, parseMessages } = useMessageParser ( ) ;
0 commit comments