diff --git a/apps/staged/src/lib/features/projects/ProjectHome.svelte b/apps/staged/src/lib/features/projects/ProjectHome.svelte index 5f50f6815..81a2b2d45 100644 --- a/apps/staged/src/lib/features/projects/ProjectHome.svelte +++ b/apps/staged/src/lib/features/projects/ProjectHome.svelte @@ -478,6 +478,18 @@ }) ); + // Navigate away immediately so the user doesn't have to wait for backend deletion. + // Skip projects that are already being deleted. + const currentIndex = projects.findIndex((p) => p.id === id); + const alive = projects.filter((p) => p.id !== id && !deletingProjectNames.has(p.id)); + if (alive.length > 0) { + // Prefer the next project after the current one; fall back to the closest earlier one + const next = alive.find((p) => projects.indexOf(p) > currentIndex) ?? alive[alive.length - 1]; + selectProject(next.id); + } else { + goHome(); + } + try { await commands.deleteProject(id); projects = projects.filter((p) => p.id !== id);