From 03cdd5225870390f9d4e2e8848c726be01680442 Mon Sep 17 00:00:00 2001 From: Phelipe Lorran <112786693+httpsphl@users.noreply.github.com> Date: Thu, 15 Oct 2026 14:55:07 -0300 Subject: [PATCH] feat(app): resizable crews list Drag the right edge of the crews list, or use the arrow keys; double click goes back to the usual width. The width is remembered. --- app/src/features/crews/Sidebar.tsx | 4 +- app/src/features/crews/SidebarResizer.tsx | 77 ++++++++++++++++++++ app/src/features/crews/sidebarWidth.test.tsx | 42 +++++++++++ app/src/shell/sidebarWidth.ts | 65 +++++++++++++++++ app/src/sidebar.css | 2 +- 5 files changed, 188 insertions(+), 2 deletions(-) create mode 100644 app/src/features/crews/SidebarResizer.tsx create mode 100644 app/src/features/crews/sidebarWidth.test.tsx create mode 100644 app/src/shell/sidebarWidth.ts diff --git a/app/src/features/crews/Sidebar.tsx b/app/src/features/crews/Sidebar.tsx index c5a8535e..711cc81b 100644 --- a/app/src/features/crews/Sidebar.tsx +++ b/app/src/features/crews/Sidebar.tsx @@ -24,6 +24,7 @@ import { useCrewActions } from "./crewActions"; import { moveBy, orderedCrews, setCrewOrder, useCrewOrder } from "./crewOrder"; import { Conversation } from "./SidebarConversation"; import { row } from "./SidebarPages"; +import { SidebarResizer } from "./SidebarResizer"; import { StateFilters } from "./StateFilters"; import { filteredBots, useStateFilter } from "./stateFilter"; import { useCrewDrag } from "./useCrewDrag"; @@ -43,7 +44,8 @@ export function Sidebar() { const allFolded = crews.length > 0 && crews.every((crew) => collapsed.has(crew.id)); const [creating, setCreating] = useState(false); return ( -
+
+