summaryrefslogtreecommitdiffhomepage
path: root/packages/app/src/context
diff options
context:
space:
mode:
authorAdam <[email protected]>2025-12-27 05:19:03 -0600
committerAdam <[email protected]>2025-12-27 14:33:22 -0600
commitc523ca412747d66e0236865a4fa2481f7d50f64e (patch)
treebffa7666e7ef44abd5a039223bd66989652e2180 /packages/app/src/context
parent685f3ea324cf5d0401f7b0895a78560149bf8a4b (diff)
downloadopencode-c523ca412747d66e0236865a4fa2481f7d50f64e.tar.gz
opencode-c523ca412747d66e0236865a4fa2481f7d50f64e.zip
wip(desktop): handle more errors
Diffstat (limited to 'packages/app/src/context')
-rw-r--r--packages/app/src/context/terminal.tsx60
1 files changed, 38 insertions, 22 deletions
diff --git a/packages/app/src/context/terminal.tsx b/packages/app/src/context/terminal.tsx
index 6f7c11dea..e9a07077c 100644
--- a/packages/app/src/context/terminal.tsx
+++ b/packages/app/src/context/terminal.tsx
@@ -36,35 +36,49 @@ export const { use: useTerminal, provider: TerminalProvider } = createSimpleCont
all: createMemo(() => Object.values(store.all)),
active: createMemo(() => store.active),
new() {
- sdk.client.pty.create({ title: `Terminal ${store.all.length + 1}` }).then((pty) => {
- const id = pty.data?.id
- if (!id) return
- setStore("all", [
- ...store.all,
- {
- id,
- title: pty.data?.title ?? "Terminal",
- },
- ])
- setStore("active", id)
- })
+ sdk.client.pty
+ .create({ title: `Terminal ${store.all.length + 1}` })
+ .then((pty) => {
+ const id = pty.data?.id
+ if (!id) return
+ setStore("all", [
+ ...store.all,
+ {
+ id,
+ title: pty.data?.title ?? "Terminal",
+ },
+ ])
+ setStore("active", id)
+ })
+ .catch((e) => {
+ console.error("Failed to create terminal", e)
+ })
},
update(pty: Partial<LocalPTY> & { id: string }) {
setStore("all", (x) => x.map((x) => (x.id === pty.id ? { ...x, ...pty } : x)))
- sdk.client.pty.update({
- ptyID: pty.id,
- title: pty.title,
- size: pty.cols && pty.rows ? { rows: pty.rows, cols: pty.cols } : undefined,
- })
+ sdk.client.pty
+ .update({
+ ptyID: pty.id,
+ title: pty.title,
+ size: pty.cols && pty.rows ? { rows: pty.rows, cols: pty.cols } : undefined,
+ })
+ .catch((e) => {
+ console.error("Failed to update terminal", e)
+ })
},
async clone(id: string) {
const index = store.all.findIndex((x) => x.id === id)
const pty = store.all[index]
if (!pty) return
- const clone = await sdk.client.pty.create({
- title: pty.title,
- })
- if (!clone.data) return
+ const clone = await sdk.client.pty
+ .create({
+ title: pty.title,
+ })
+ .catch((e) => {
+ console.error("Failed to clone terminal", e)
+ return undefined
+ })
+ if (!clone?.data) return
setStore("all", index, {
...pty,
...clone.data,
@@ -88,7 +102,9 @@ export const { use: useTerminal, provider: TerminalProvider } = createSimpleCont
setStore("active", previous?.id)
}
})
- await sdk.client.pty.remove({ ptyID: id })
+ await sdk.client.pty.remove({ ptyID: id }).catch((e) => {
+ console.error("Failed to close terminal", e)
+ })
},
move(id: string, to: number) {
const index = store.all.findIndex((f) => f.id === id)