Skip to content

Commit 9e305fd

Browse files
committed
feat(sidebar): reload workspace threads
1 parent f4f6945 commit 9e305fd

3 files changed

Lines changed: 21 additions & 2 deletions

File tree

src/App.tsx

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -735,6 +735,13 @@ function MainApp() {
735735
}
736736
void loadOlderThreadsForWorkspace(workspace);
737737
},
738+
onReloadWorkspaceThreads: (workspaceId) => {
739+
const workspace = workspaces.find((entry) => entry.id === workspaceId);
740+
if (!workspace) {
741+
return;
742+
}
743+
void listThreadsForWorkspace(workspace);
744+
},
738745
updaterState: updater.state,
739746
onUpdate: updater.startUpdate,
740747
onDismissUpdate: updater.dismiss,

src/features/app/components/Sidebar.tsx

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ type SidebarProps = {
3636
onDeleteWorkspace: (workspaceId: string) => void;
3737
onDeleteWorktree: (workspaceId: string) => void;
3838
onLoadOlderThreads: (workspaceId: string) => void;
39+
onReloadWorkspaceThreads: (workspaceId: string) => void;
3940
};
4041

4142
export function Sidebar({
@@ -64,6 +65,7 @@ export function Sidebar({
6465
onDeleteWorkspace,
6566
onDeleteWorktree,
6667
onLoadOlderThreads,
68+
onReloadWorkspaceThreads,
6769
}: SidebarProps) {
6870
const [expandedWorkspaces, setExpandedWorkspaces] = useState(
6971
new Set<string>(),
@@ -156,11 +158,15 @@ export function Sidebar({
156158
) {
157159
event.preventDefault();
158160
event.stopPropagation();
161+
const reloadItem = await MenuItem.new({
162+
text: "Reload threads",
163+
action: () => onReloadWorkspaceThreads(workspaceId),
164+
});
159165
const deleteItem = await MenuItem.new({
160166
text: "Delete",
161167
action: () => onDeleteWorkspace(workspaceId),
162168
});
163-
const menu = await Menu.new({ items: [deleteItem] });
169+
const menu = await Menu.new({ items: [reloadItem, deleteItem] });
164170
const window = getCurrentWindow();
165171
const position = new LogicalPosition(event.clientX, event.clientY);
166172
await menu.popup(position, window);
@@ -172,11 +178,15 @@ export function Sidebar({
172178
) {
173179
event.preventDefault();
174180
event.stopPropagation();
181+
const reloadItem = await MenuItem.new({
182+
text: "Reload threads",
183+
action: () => onReloadWorkspaceThreads(workspaceId),
184+
});
175185
const deleteItem = await MenuItem.new({
176186
text: "Delete worktree",
177187
action: () => onDeleteWorktree(workspaceId),
178188
});
179-
const menu = await Menu.new({ items: [deleteItem] });
189+
const menu = await Menu.new({ items: [reloadItem, deleteItem] });
180190
const window = getCurrentWindow();
181191
const position = new LogicalPosition(event.clientX, event.clientY);
182192
await menu.popup(position, window);

src/features/layout/hooks/useLayoutNodes.tsx

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ type LayoutNodesOptions = {
8686
onDeleteWorkspace: (workspaceId: string) => void;
8787
onDeleteWorktree: (workspaceId: string) => void;
8888
onLoadOlderThreads: (workspaceId: string) => void;
89+
onReloadWorkspaceThreads: (workspaceId: string) => void;
8990
updaterState: UpdateState;
9091
onUpdate: () => void;
9192
onDismissUpdate: () => void;
@@ -255,6 +256,7 @@ export function useLayoutNodes(options: LayoutNodesOptions): LayoutNodesResult {
255256
onDeleteWorkspace={options.onDeleteWorkspace}
256257
onDeleteWorktree={options.onDeleteWorktree}
257258
onLoadOlderThreads={options.onLoadOlderThreads}
259+
onReloadWorkspaceThreads={options.onReloadWorkspaceThreads}
258260
/>
259261
);
260262

0 commit comments

Comments
 (0)