Skip to content

refactor(ui): unify tab pages on PageShell and restructure layout hierarchy - #308

Merged
guyghost merged 1 commit into
developfrom
guyghost-extension-tabs-layout
Aug 21, 2026
Merged

refactor(ui): unify tab pages on PageShell and restructure layout hierarchy#308
guyghost merged 1 commit into
developfrom
guyghost-extension-tabs-layout

Conversation

@guyghost

@guyghost guyghost commented Aug 21, 2026

Copy link
Copy Markdown
Owner

Summary

  • The five non-feed tabs each rebuilt their own page root (scroll container, gutters, spacing cadence), producing subtle inconsistencies. New shared PageShell template is now the single source for the scroll container and 16px sibling cadence; dead SettingsLayout removed.
  • Profil: the criteria form was buried at y~825 under 600px of advisory content inside the header card. The form now sits directly under the header; impact advisory (story + priorites) follows as its own act. First form input moved from below the fold to y364 in a 700px viewport.
  • Suivi: "Dossier recommande" was nested inside the PageHeader card (nested-card violation). It is now a top-level sibling (header 678 -> 445px); heading promoted h3 -> h2.
  • TJM: the dashboard's 7 equal-weight cards are now split into a decision act and a details act, separated by a 24px boundary with a "Details du marche" label.
  • Layout-only refinement: zero copy, handler, or state changes. All pinned strings and document order in operational-ui-constraints.test.ts preserved.

Verification

  • pnpm format:check
  • pnpm lint
  • pnpm typecheck
  • pnpm test
  • pnpm build

(all via the pre-push ci:check gate; plus targeted operational-ui-constraints + TJMDashboard unit tests, layout detector scan clean, and visual verification at 360px and 500px widths: no horizontal overflow, measured block geometry confirms the offsets above)

Checklist

  • No secrets, cookies, session tokens, or generated release artifacts committed
  • Core code remains pure; I/O stays in shell modules
  • Svelte changes use Svelte 5 runes only
  • Documentation updated when behavior or setup changes (N/A - no behavior or setup change)

Open in Devin Review

…rarchy

- Add PageShell template (scroll container + gutters + 16px cadence) and
  adopt it on Profil, CV, Suivi, TJM, Réglages; drop dead SettingsLayout
- Profil: criteria form moves directly under the header; impact advisory
  (story + priorités) becomes a following act; Priorités promoted to its
  own section-card (fixes nested-card violation). First form input drops
  from y≈825 to y≈364 in a 700px viewport
- Suivi: Dossier recommandé lifted out of the header card to a top-level
  sibling (header 678→445px); heading promoted h3→h2
- TJM: dashboard split into a decision act and a details act separated by
  a 24px boundary with a "Détails du marché" label

No copy, handler, or state changes. Operational constraint tests pass.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Copilot AI lite review requested due to automatic review settings August 21, 2026 18:08
@vercel

vercel Bot commented Aug 21, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
pulse Building Building Preview Aug 21, 2026 6:08pm
1 Skipped Deployment
Project Deployment Actions Updated (UTC)
pulse-dashboard Skipped Skipped Aug 21, 2026 6:08pm

@guyghost
guyghost merged commit d798301 into develop Aug 21, 2026
6 of 8 checks passed

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Devin Review: No Issues Found

Devin Review analyzed this PR and found no bugs or issues to report.

Open in Devin Review

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

The changes are layout-focused refactors with consistent PageShell adoption, and no concrete correctness, accessibility, or architectural issues were identified in the updated components.

Pull request overview

This PR refactors the extension UI layout for non-feed tabs by introducing a shared PageShell template to standardize the scroll container and spacing cadence, while restructuring several pages (Profile, Applications/Suivi, TJM) to fix layout hierarchy issues and improve above-the-fold content placement.

Changes:

  • Added PageShell and migrated multiple tab pages to use it as the single shared page root (replacing per-page scroll/gutter implementations).
  • Reorganized ProfilePage content order so the criteria form appears directly under the header, with impact advisory content moved below.
  • Restructured ApplicationsPage (“Dossier recommandé” becomes a top-level sibling) and TJMDashboard (split into decision vs. details acts with a labeled boundary).
File summaries
File Description
apps/extension/src/ui/templates/SettingsLayout.svelte Removes the now-obsolete layout wrapper previously duplicating page-root structure.
apps/extension/src/ui/templates/PageShell.svelte Introduces the shared page shell that centralizes scroll container + spacing + aria-busy.
apps/extension/src/ui/pages/TJMPage.svelte Switches TJM page root to PageShell for consistent layout behavior.
apps/extension/src/ui/pages/SettingsPage.svelte Uses PageShell and routes busy state through ariaBusy for consistent accessibility signaling.
apps/extension/src/ui/pages/ProfilePage.svelte Reorders header/footer and moves the criteria form earlier; impact advisory becomes its own sibling block.
apps/extension/src/ui/pages/CvPage.svelte Switches CV page root to PageShell to match standardized tab layout.
apps/extension/src/ui/pages/ApplicationsPage.svelte Uses PageShell and lifts “Dossier recommandé” out of the header card into the page flow.
apps/extension/src/ui/organisms/TJMDashboard.svelte Reorganizes dashboard sections into clearer “decision” vs “details” grouping with a labeled divider.
Review details
  • Files reviewed: 8/8 changed files
  • Comments generated: 0
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants