@@ -72,6 +72,7 @@ export default function Home() {
7272 if ( languageModel . model && ! filteredModels . find ( ( m ) => m . id === languageModel . model ) ) {
7373 setLanguageModel ( { ...languageModel , model : defaultModel . id } )
7474 }
75+ // eslint-disable-next-line react-hooks/exhaustive-deps
7576 } , [ languageModel . model ] )
7677 const currentTemplate =
7778 selectedTemplate === 'auto'
@@ -84,6 +85,31 @@ export default function Home() {
8485 useMorphApply && fragment && fragment . code && fragment . file_path
8586 const apiEndpoint = shouldUseMorph ? '/api/morph-chat' : '/api/chat'
8687
88+ function setMessage ( message : Partial < Message > , index ?: number ) {
89+ setMessages ( ( previousMessages ) => {
90+ const updatedMessages = [ ...previousMessages ]
91+ updatedMessages [ index ?? previousMessages . length - 1 ] = {
92+ ...previousMessages [ index ?? previousMessages . length - 1 ] ,
93+ ...message ,
94+ }
95+
96+ return updatedMessages
97+ } )
98+ }
99+
100+ function addMessage ( message : Message ) {
101+ setMessages ( ( previousMessages ) => [ ...previousMessages , message ] )
102+ return [ ...messages , message ]
103+ }
104+
105+ function setCurrentPreview ( preview : {
106+ fragment : DeepPartial < FragmentSchema > | undefined
107+ result : ExecutionResult | undefined
108+ } ) {
109+ setFragment ( preview . fragment )
110+ setResult ( preview . result )
111+ }
112+
87113 const { object, submit, isLoading, stop, error } = useObject ( {
88114 api : apiEndpoint ,
89115 schema,
@@ -150,24 +176,14 @@ export default function Home() {
150176 } )
151177 }
152178 }
179+ // eslint-disable-next-line react-hooks/exhaustive-deps
153180 } , [ object ] )
154181
155182 useEffect ( ( ) => {
156183 if ( error ) stop ( )
184+ // eslint-disable-next-line react-hooks/exhaustive-deps
157185 } , [ error ] )
158186
159- function setMessage ( message : Partial < Message > , index ?: number ) {
160- setMessages ( ( previousMessages ) => {
161- const updatedMessages = [ ...previousMessages ]
162- updatedMessages [ index ?? previousMessages . length - 1 ] = {
163- ...previousMessages [ index ?? previousMessages . length - 1 ] ,
164- ...message ,
165- }
166-
167- return updatedMessages
168- } )
169- }
170-
171187 async function handleSubmitAuth ( e : React . FormEvent < HTMLFormElement > ) {
172188 e . preventDefault ( )
173189
@@ -225,11 +241,6 @@ export default function Home() {
225241 } )
226242 }
227243
228- function addMessage ( message : Message ) {
229- setMessages ( ( previousMessages ) => [ ...previousMessages , message ] )
230- return [ ...messages , message ]
231- }
232-
233244 function handleSaveInputChange ( e : React . ChangeEvent < HTMLTextAreaElement > ) {
234245 setChatInput ( e . target . value )
235246 }
@@ -271,14 +282,6 @@ export default function Home() {
271282 setIsPreviewLoading ( false )
272283 }
273284
274- function setCurrentPreview ( preview : {
275- fragment : DeepPartial < FragmentSchema > | undefined
276- result : ExecutionResult | undefined
277- } ) {
278- setFragment ( preview . fragment )
279- setResult ( preview . result )
280- }
281-
282285 function handleUndo ( ) {
283286 setMessages ( ( previousMessages ) => [ ...previousMessages . slice ( 0 , - 2 ) ] )
284287 setCurrentPreview ( { fragment : undefined , result : undefined } )
0 commit comments