Frontend: hard page reload on project delete wipes in-flight state #112

Closed
opened 2026-05-26 18:20:07 -04:00 by zgaetano · 1 comment
Owner

Verified in 04ce096deleteProject already uses a soft refresh() call (no location.reload()). In-flight state preserved.

Verified in 04ce096 — `deleteProject` already uses a soft `refresh()` call (no `location.reload()`). In-flight state preserved.
Author
Owner

Fix Plan — #112 Hard page reload on project delete wipes state

Root cause: screens-library.jsx:590 — delete handler calls window.location.reload() after successful DELETE. Wipes open modals, search state, scroll position, unsaved drafts.

Fix — dispatch custom event, refetch in place:

// before:
await fetch(`/api/v1/projects/${id}`, { method: "DELETE" });
window.location.reload();

// after:
await fetch(`/api/v1/projects/${id}`, { method: "DELETE" });
dispatchEvent(new CustomEvent("df:projects-changed"));
// In parent: listen for event, refetch projects list, close modal

Files: screens-library.jsx:590
Effort: ~30min
**Priority: P2 — UX

## Fix Plan — #112 Hard page reload on project delete wipes state **Root cause:** `screens-library.jsx:590` — delete handler calls `window.location.reload()` after successful DELETE. Wipes open modals, search state, scroll position, unsaved drafts. **Fix — dispatch custom event, refetch in place:** ```js // before: await fetch(`/api/v1/projects/${id}`, { method: "DELETE" }); window.location.reload(); // after: await fetch(`/api/v1/projects/${id}`, { method: "DELETE" }); dispatchEvent(new CustomEvent("df:projects-changed")); // In parent: listen for event, refetch projects list, close modal ``` **Files:** `screens-library.jsx:590` **Effort:** ~30min **Priority: P2 — UX
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: WildDragonLLC/dragonflight#112
No description provided.