fix(app): wrap session creation state updates in startTransition (#36182)
This commit is contained in:
parent
d09d5612f3
commit
ea982c3832
1 changed files with 11 additions and 8 deletions
|
|
@ -3,7 +3,7 @@ import { showToast } from "@/utils/toast"
|
||||||
import { base64Encode } from "@opencode-ai/core/util/encode"
|
import { base64Encode } from "@opencode-ai/core/util/encode"
|
||||||
import { Binary } from "@opencode-ai/core/util/binary"
|
import { Binary } from "@opencode-ai/core/util/binary"
|
||||||
import { useNavigate, useParams, useSearchParams } from "@solidjs/router"
|
import { useNavigate, useParams, useSearchParams } from "@solidjs/router"
|
||||||
import { batch, type Accessor } from "solid-js"
|
import { batch, startTransition, type Accessor } from "solid-js"
|
||||||
import { useTabs } from "@/context/tabs"
|
import { useTabs } from "@/context/tabs"
|
||||||
import { useServerSync, type ServerSync } from "@/context/server-sync"
|
import { useServerSync, type ServerSync } from "@/context/server-sync"
|
||||||
import { useLanguage } from "@/context/language"
|
import { useLanguage } from "@/context/language"
|
||||||
|
|
@ -374,13 +374,16 @@ export function createPromptSubmit(input: PromptSubmitInput) {
|
||||||
if (created) {
|
if (created) {
|
||||||
seed(sessionDirectory, created)
|
seed(sessionDirectory, created)
|
||||||
session = created
|
session = created
|
||||||
if (shouldAutoAccept) permission.enableAutoAccept(session.id, sessionDirectory)
|
await startTransition(() => {
|
||||||
local.session.promote(sessionDirectory, session.id)
|
if (!session) return
|
||||||
layout.handoff.setTabs(base64Encode(sessionDirectory), session.id)
|
if (shouldAutoAccept) permission.enableAutoAccept(session.id, sessionDirectory)
|
||||||
const draftID = search.draftId
|
local.session.promote(sessionDirectory, session.id)
|
||||||
if (draftID) tabs.promoteDraft(draftID, { server: tabs.draft(draftID).server, sessionId: session.id })
|
layout.handoff.setTabs(base64Encode(sessionDirectory), session.id)
|
||||||
else navigate(`/${base64Encode(sessionDirectory)}/session/${session.id}`)
|
const draftID = search.draftId
|
||||||
submission.retarget(prompt.capture({ dir: base64Encode(sessionDirectory), id: session.id }))
|
if (draftID) tabs.promoteDraft(draftID, { server: tabs.draft(draftID).server, sessionId: session.id })
|
||||||
|
else navigate(`/${base64Encode(sessionDirectory)}/session/${session.id}`)
|
||||||
|
submission.retarget(prompt.capture({ dir: base64Encode(sessionDirectory), id: session.id }))
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!session) {
|
if (!session) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue