fix(tui): handle session search fetch failures without crashing (#36149)
This commit is contained in:
@@ -35,6 +35,7 @@ export function DialogSessionList() {
|
|||||||
const [searchResults] = createResource(search, async (query) => {
|
const [searchResults] = createResource(search, async (query) => {
|
||||||
if (!query) return
|
if (!query) return
|
||||||
const location = data.location.default()
|
const location = data.location.default()
|
||||||
|
try {
|
||||||
const response = await sdk.api.session.list({
|
const response = await sdk.api.session.list({
|
||||||
search: query,
|
search: query,
|
||||||
limit: 50,
|
limit: 50,
|
||||||
@@ -45,6 +46,12 @@ export function DialogSessionList() {
|
|||||||
})
|
})
|
||||||
// oxlint-disable-next-line typescript-eslint/no-unsafe-type-assertion -- generated client output is readonly; session list UI reuses legacy mutable session types.
|
// oxlint-disable-next-line typescript-eslint/no-unsafe-type-assertion -- generated client output is readonly; session list UI reuses legacy mutable session types.
|
||||||
return { query, sessions: structuredClone(response.data) as SessionInfo[] }
|
return { query, sessions: structuredClone(response.data) as SessionInfo[] }
|
||||||
|
} catch (error) {
|
||||||
|
// A transient transport failure must degrade search, not crash the TUI
|
||||||
|
// through the root ErrorBoundary when the errored resource is read.
|
||||||
|
toast.show({ message: errorMessage(error), variant: "error", duration: 5000 })
|
||||||
|
return { query, sessions: [] as SessionInfo[] }
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
const currentSessionID = createMemo(() => (route.data.type === "session" ? route.data.sessionID : undefined))
|
const currentSessionID = createMemo(() => (route.data.type === "session" ? route.data.sessionID : undefined))
|
||||||
|
|||||||
Reference in New Issue
Block a user