bug: settings overlay blanks the underlying dashboard #306

Closed
opened 2026-05-11 19:19:07 +00:00 by barrettruth · 0 comments
Owner

Parent: #305

Problem

After the settings routing simplification, settings still render with a modal shell, but the previous dashboard route is no longer mounted behind the dialog. Opening settings from queue, kanban, or calendar leaves the blurred backdrop over a blank page instead of over the existing content.

Evidence

  • src/app/(dashboard)/layout.tsx now renders only the primary children route.
  • src/app/(dashboard)/settings/layout.tsx renders SettingsModalShell as the page content.
  • src/components/settings-modal-shell.tsx portals a modal and backdrop, but there is no preserved prior route underneath.
  • src/lib/settings-navigation.ts preserves returnTo, but that only controls close behavior; it does not keep the previous dashboard view mounted.

Solution

Restore modal-over-current-page behavior without bringing back broad settings complexity.

Preferred implementation:

  • restore a narrow intercepted/parallel settings route only for modal presentation
  • keep canonical settings section implementations shared with direct /settings/* pages
  • make SettingsModalShell distinguish intercepted modal close behavior from direct settings-page fallback
  • preserve returnTo query handling for direct links and hard reloads

Acceptance criteria

  • Opening settings from /, /?view=queue, /kanban, and /calendar?mode=week shows the current page behind the backdrop.
  • Settings section navigation updates the modal content and URL without replacing the underlying dashboard view.
  • q, Esc, close button, and browser Back close the overlay and return to the original route including query params.
  • Direct /settings/* behavior is deliberate and tested as either a full-page fallback or a documented default background.
  • Desktop/mobile and light/dark states are visually checked.
  • Focused settings/navigation tests plus just lint pass.
Parent: #305 ## Problem After the settings routing simplification, settings still render with a modal shell, but the previous dashboard route is no longer mounted behind the dialog. Opening settings from queue, kanban, or calendar leaves the blurred backdrop over a blank page instead of over the existing content. ## Evidence - `src/app/(dashboard)/layout.tsx` now renders only the primary `children` route. - `src/app/(dashboard)/settings/layout.tsx` renders `SettingsModalShell` as the page content. - `src/components/settings-modal-shell.tsx` portals a modal and backdrop, but there is no preserved prior route underneath. - `src/lib/settings-navigation.ts` preserves `returnTo`, but that only controls close behavior; it does not keep the previous dashboard view mounted. ## Solution Restore modal-over-current-page behavior without bringing back broad settings complexity. Preferred implementation: - restore a narrow intercepted/parallel settings route only for modal presentation - keep canonical settings section implementations shared with direct `/settings/*` pages - make `SettingsModalShell` distinguish intercepted modal close behavior from direct settings-page fallback - preserve `returnTo` query handling for direct links and hard reloads ## Acceptance criteria - Opening settings from `/`, `/?view=queue`, `/kanban`, and `/calendar?mode=week` shows the current page behind the backdrop. - Settings section navigation updates the modal content and URL without replacing the underlying dashboard view. - `q`, `Esc`, close button, and browser Back close the overlay and return to the original route including query params. - Direct `/settings/*` behavior is deliberate and tested as either a full-page fallback or a documented default background. - Desktop/mobile and light/dark states are visually checked. - Focused settings/navigation tests plus `just lint` pass.
barrettruth added this to the v0.1.0 milestone 2026-05-11 19:19:07 +00:00
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
barrettruth/delta#306
No description provided.