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 (
-
+
+