@@ -5,7 +5,7 @@ import { DataProvider } from "@opencode-ai/ui/context"
55import { DiffComponentProvider } from "@opencode-ai/ui/context/diff"
66import { CodeComponentProvider } from "@opencode-ai/ui/context/code"
77import { WorkerPoolProvider } from "@opencode-ai/ui/context/worker-pool"
8- import { createAsync , query , useParams } from "@solidjs/router"
8+ import { createAsync , query , useParams , useSearchParams } from "@solidjs/router"
99import { createEffect , createMemo , ErrorBoundary , For , Match , Show , Switch } from "solid-js"
1010import { Share } from "~/core/share"
1111import { Logo , Mark } from "@opencode-ai/ui/logo"
@@ -222,8 +222,11 @@ export default function () {
222222 < CodeComponentProvider component = { ClientOnlyCode } >
223223 < DataProvider data = { data ( ) } directory = { info ( ) . directory } >
224224 { iife ( ( ) => {
225+ const [ searchParams , setSearchParams ] = useSearchParams ( )
226+ const getMessageId = createMemo ( ( ) =>
227+ Array . isArray ( searchParams . message ) ? searchParams . message [ 0 ] : searchParams . message
228+ )
225229 const [ store , setStore ] = createStore ( {
226- messageId : undefined as string | undefined ,
227230 expandedSteps : { } as Record < string , boolean > ,
228231 } )
229232 const messages = createMemo ( ( ) =>
@@ -235,13 +238,13 @@ export default function () {
235238 )
236239 const firstUserMessage = createMemo ( ( ) => messages ( ) . at ( 0 ) )
237240 const activeMessage = createMemo (
238- ( ) => messages ( ) . find ( ( m ) => m . id === store . messageId ) ?? firstUserMessage ( ) ,
241+ ( ) => messages ( ) . find ( ( m ) => m . id === getMessageId ( ) ) ?? firstUserMessage ( ) ,
239242 )
240243 function setActiveMessage ( message : UserMessage | undefined ) {
241244 if ( message ) {
242- setStore ( "messageId" , message . id )
245+ setSearchParams ( { message : message . id } , { replace : true } )
243246 } else {
244- setStore ( "messageId" , undefined )
247+ setSearchParams ( { message : undefined } , { replace : true } )
245248 }
246249 }
247250 const provider = createMemo ( ( ) => activeMessage ( ) ?. model ?. providerID )
@@ -374,12 +377,12 @@ export default function () {
374377 </ Show >
375378 < SessionTurn
376379 sessionID = { data ( ) . sessionID }
377- messageID = { store . messageId ?? firstUserMessage ( ) ! . id ! }
380+ messageID = { getMessageId ( ) ?? firstUserMessage ( ) ! . id ! }
378381 stepsExpanded = {
379- store . expandedSteps [ store . messageId ?? firstUserMessage ( ) ! . id ! ] ?? false
382+ store . expandedSteps [ getMessageId ( ) ?? firstUserMessage ( ) ! . id ! ] ?? false
380383 }
381384 onStepsExpandedToggle = { ( ) => {
382- const id = store . messageId ?? firstUserMessage ( ) ! . id !
385+ const id = getMessageId ( ) ?? firstUserMessage ( ) ! . id !
383386 setStore ( "expandedSteps" , id , ( v ) => ! v )
384387 } }
385388 classes = { {
0 commit comments