authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-02-15 00:14:02-08:00
committergravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-02-15 00:14:02-08:00
log6e46a7be3899db0c03b9b6e304d973b3efa54c3d
tree1e93a7f6fa19f45eb6d3e1f0e50546e95a374b84
parent0be98ea9d1dfbfda750e71d783df1cb2524ec92d

Hide drawer on final terminal close

Co-authored-by: codex <codex@users.noreply.github.com>

2 files changed, 7 insertions(+), 7 deletions(-)

apps/web/src/store.test.ts+2-2
......@@ -287,7 +287,7 @@ describe("store reducer thread continuity", () => {
287287 ]);
288288 });
289289
290 it("closes the final terminal and keeps the drawer visibility unchanged", () => {
290 it("closes the final terminal and hides the drawer", () => {
291291 const state = makeState(
292292 makeThread({
293293 terminalOpen: true,
......@@ -300,7 +300,7 @@ describe("store reducer thread continuity", () => {
300300 terminalId: DEFAULT_THREAD_TERMINAL_ID,
301301 });
302302
303 expect(next.threads[0]?.terminalOpen).toBe(true);
303 expect(next.threads[0]?.terminalOpen).toBe(false);
304304 expect(next.threads[0]?.terminalIds).toEqual([DEFAULT_THREAD_TERMINAL_ID]);
305305 expect(next.threads[0]?.runningTerminalIds).toEqual([]);
306306 expect(next.threads[0]?.activeTerminalId).toBe(DEFAULT_THREAD_TERMINAL_ID);
apps/web/src/store.ts+5-5
......@@ -269,17 +269,17 @@ function closeThreadTerminal(thread: Thread, terminalId: string): Thread {
269269
270270 const remainingTerminalIds = thread.terminalIds.filter((id) => id !== terminalId);
271271 if (remainingTerminalIds.length === 0) {
272 const nextTerminalId = terminalId;
273 const nextTerminalGroupId = fallbackGroupId(nextTerminalId);
272 const nextTerminalGroupId = fallbackGroupId(DEFAULT_THREAD_TERMINAL_ID);
274273 return normalizeThreadTerminals({
275274 ...thread,
276 terminalIds: [nextTerminalId],
275 terminalOpen: false,
276 terminalIds: [DEFAULT_THREAD_TERMINAL_ID],
277277 runningTerminalIds: [],
278 activeTerminalId: nextTerminalId,
278 activeTerminalId: DEFAULT_THREAD_TERMINAL_ID,
279279 terminalGroups: [
280280 {
281281 id: nextTerminalGroupId,
282 terminalIds: [nextTerminalId],
282 terminalIds: [DEFAULT_THREAD_TERMINAL_ID],
283283 },
284284 ],
285285 activeTerminalGroupId: nextTerminalGroupId,