Part of #96. Small debt swept up alongside the overhaul; do opportunistically.
Do.
Remove components/PageStub.tsx — dead code, imported nowhere (grep-confirmed).
Extract a shared ConfirmModal primitive and fold DeleteGardenModal / LeaveGardenModal / CopyGardenModal / ClearBedModal / DeletePlantModal / DeleteSeedLotModal onto it — they all repeat the same title + body + confirm/cancel + busy shape. (If the responsive-polish issue lands first and needs it, do it there and just tick this off.)
Editor max-width — one of the deferred #85 rough edges: the editor content is currently constrained to max-w-5xl by AppShell's main wrapper, wasting space on wide screens for a canvas that wants room. Let the editor route go full-width (it already partly fights the shell). Reconcile with the mobile-first shell work in #98.
Acceptance.
No dead components remain.
The six confirm dialogs share one primitive with no behavior change.
The editor uses the full viewport width on desktop.
Low-risk; can be split further if any piece grows.
Part of #96. Small debt swept up alongside the overhaul; do opportunistically.
**Do.**
- **Remove `components/PageStub.tsx`** — dead code, imported nowhere (grep-confirmed).
- **Extract a shared `ConfirmModal`** primitive and fold `DeleteGardenModal` / `LeaveGardenModal` / `CopyGardenModal` / `ClearBedModal` / `DeletePlantModal` / `DeleteSeedLotModal` onto it — they all repeat the same title + body + confirm/cancel + busy shape. (If the responsive-polish issue lands first and needs it, do it there and just tick this off.)
- **Editor max-width** — one of the deferred #85 rough edges: the editor content is currently constrained to `max-w-5xl` by AppShell's main wrapper, wasting space on wide screens for a canvas that wants room. Let the editor route go full-width (it already partly fights the shell). Reconcile with the mobile-first shell work in #98.
**Acceptance.**
- No dead components remain.
- The six confirm dialogs share one primitive with no behavior change.
- The editor uses the full viewport width on desktop.
Low-risk; can be split further if any piece grows.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Part of #96. Small debt swept up alongside the overhaul; do opportunistically.
Do.
components/PageStub.tsx— dead code, imported nowhere (grep-confirmed).ConfirmModalprimitive and foldDeleteGardenModal/LeaveGardenModal/CopyGardenModal/ClearBedModal/DeletePlantModal/DeleteSeedLotModalonto it — they all repeat the same title + body + confirm/cancel + busy shape. (If the responsive-polish issue lands first and needs it, do it there and just tick this off.)max-w-5xlby AppShell's main wrapper, wasting space on wide screens for a canvas that wants room. Let the editor route go full-width (it already partly fights the shell). Reconcile with the mobile-first shell work in #98.Acceptance.
Low-risk; can be split further if any piece grows.