diff --git a/packages/app/src/context/terminal.tsx b/packages/app/src/context/terminal.tsx index 72f93edc2..439b196c6 100644 --- a/packages/app/src/context/terminal.tsx +++ b/packages/app/src/context/terminal.tsx @@ -150,13 +150,18 @@ function createTerminalSession(sdk: ReturnType, dir: string, sess return undefined }) if (!clone?.data) return - setStore("all", index, { - ...pty, - ...clone.data, + + const active = store.active === pty.id + + batch(() => { + setStore("all", index, { + ...pty, + ...clone.data, + }) + if (active) { + setStore("active", clone.data.id) + } }) - if (store.active === pty.id) { - setStore("active", clone.data.id) - } }, open(id: string) { setStore("active", id) diff --git a/packages/app/src/pages/session.tsx b/packages/app/src/pages/session.tsx index 01368896e..ada1b4ffc 100644 --- a/packages/app/src/pages/session.tsx +++ b/packages/app/src/pages/session.tsx @@ -2474,7 +2474,15 @@ export default function Page() { display: terminal.active() === pty.id ? "block" : "none", }} > - terminal.clone(pty.id)} /> + + {() => ( + terminal.clone(pty.id)} + /> + )} + )}