@@ -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,12 @@ export default function () {
222222 < CodeComponentProvider component = { ClientOnlyCode } >
223223 < DataProvider data = { data ( ) } directory = { info ( ) . directory } >
224224 { iife ( ( ) => {
225+ const [ searchParams , setSearchParams ] = useSearchParams ( )
226+ const getMessageId = ( ) => {
227+ const msg = searchParams . message
228+ return Array . isArray ( msg ) ? msg [ 0 ] : msg
229+ }
225230 const [ store , setStore ] = createStore ( {
226- messageId : undefined as string | undefined ,
227231 expandedSteps : { } as Record < string , boolean > ,
228232 } )
229233 const messages = createMemo ( ( ) =>
@@ -235,13 +239,13 @@ export default function () {
235239 )
236240 const firstUserMessage = createMemo ( ( ) => messages ( ) . at ( 0 ) )
237241 const activeMessage = createMemo (
238- ( ) => messages ( ) . find ( ( m ) => m . id === store . messageId ) ?? firstUserMessage ( ) ,
242+ ( ) => messages ( ) . find ( ( m ) => m . id === getMessageId ( ) ) ?? firstUserMessage ( ) ,
239243 )
240244 function setActiveMessage ( message : UserMessage | undefined ) {
241245 if ( message ) {
242- setStore ( "messageId" , message . id )
246+ setSearchParams ( { message : message . id } , { replace : true } )
243247 } else {
244- setStore ( "messageId" , undefined )
248+ setSearchParams ( { message : undefined } , { replace : true } )
245249 }
246250 }
247251 const provider = createMemo ( ( ) => activeMessage ( ) ?. model ?. providerID )
@@ -374,12 +378,12 @@ export default function () {
374378 </ Show >
375379 < SessionTurn
376380 sessionID = { data ( ) . sessionID }
377- messageID = { store . messageId ?? firstUserMessage ( ) ! . id ! }
381+ messageID = { getMessageId ( ) ?? firstUserMessage ( ) ! . id ! }
378382 stepsExpanded = {
379- store . expandedSteps [ store . messageId ?? firstUserMessage ( ) ! . id ! ] ?? false
383+ store . expandedSteps [ getMessageId ( ) ?? firstUserMessage ( ) ! . id ! ] ?? false
380384 }
381385 onStepsExpandedToggle = { ( ) => {
382- const id = store . messageId ?? firstUserMessage ( ) ! . id !
386+ const id = getMessageId ( ) ?? firstUserMessage ( ) ! . id !
383387 setStore ( "expandedSteps" , id , ( v ) => ! v )
384388 } }
385389 classes = { {
0 commit comments