@@ -20,6 +20,7 @@ import Cookies from 'js-cookie';
20
20
import { debounce } from '~/utils/debounce' ;
21
21
import { useSettings } from '~/lib/hooks/useSettings' ;
22
22
import type { ProviderInfo } from '~/types/model' ;
23
+ import { useSearchParams } from '@remix-run/react' ;
23
24
24
25
const toastAnimation = cssTransition ( {
25
26
enter : 'animated fadeInRight' ,
@@ -92,6 +93,7 @@ export const ChatImpl = memo(
92
93
const [ chatStarted , setChatStarted ] = useState ( initialMessages . length > 0 ) ;
93
94
const [ uploadedFiles , setUploadedFiles ] = useState < File [ ] > ( [ ] ) ; // Move here
94
95
const [ imageDataList , setImageDataList ] = useState < string [ ] > ( [ ] ) ; // Move here
96
+ const [ searchParams , setSearchParams ] = useSearchParams ( ) ;
95
97
const files = useStore ( workbenchStore . files ) ;
96
98
const { activeProviders, promptId } = useSettings ( ) ;
97
99
@@ -138,6 +140,24 @@ export const ChatImpl = memo(
138
140
initialMessages,
139
141
initialInput : Cookies . get ( PROMPT_COOKIE_KEY ) || '' ,
140
142
} ) ;
143
+ useEffect ( ( ) => {
144
+ const prompt = searchParams . get ( 'prompt' ) ;
145
+ console . log ( prompt , searchParams , model , provider ) ;
146
+
147
+ if ( prompt ) {
148
+ setSearchParams ( { } ) ;
149
+ runAnimation ( ) ;
150
+ append ( {
151
+ role : 'user' ,
152
+ content : [
153
+ {
154
+ type : 'text' ,
155
+ text : `[Model: ${ model } ]\n\n[Provider: ${ provider . name } ]\n\n${ prompt } ` ,
156
+ } ,
157
+ ] as any , // Type assertion to bypass compiler check
158
+ } ) ;
159
+ }
160
+ } , [ model , provider , searchParams ] ) ;
141
161
142
162
const { enhancingPrompt, promptEnhanced, enhancePrompt, resetEnhancer } = usePromptEnhancer ( ) ;
143
163
const { parsedMessages, parseMessages } = useMessageParser ( ) ;
0 commit comments