feat(18-01): update templ wrapper signatures to forward pageTitle and breadcrumb

- TablosDashboard: add pageTitle, breadcrumb params; pass through to AppLayout
- TabloDetailPage: add pageTitle, breadcrumb params; pass through to AppLayout
- TabloNotFoundPage: pass hardcoded 'Not found' values to AppLayout
- PlanningPage: add pageTitle, breadcrumb params; pass through to AppLayout
- AccountProvidersPage: add pageTitle, breadcrumb params; pass through to AppLayout
This commit is contained in:
Arthur Belleville 2026-05-17 15:26:28 +02:00
parent 3e2c86904b
commit eff62b0fd9
No known key found for this signature in database
3 changed files with 9 additions and 9 deletions

View file

@ -5,8 +5,8 @@ import (
"backend/internal/db/sqlc"
)
templ AccountProvidersPage(user *auth.User, providers []LinkedProviderStatus, csrfToken string, activePath string, tablos []sqlc.Tablo) {
@AppLayout("Linked providers", user, csrfToken, activePath, tablos) {
templ AccountProvidersPage(user *auth.User, providers []LinkedProviderStatus, csrfToken string, activePath string, tablos []sqlc.Tablo, pageTitle string, breadcrumb []BreadcrumbItem) {
@AppLayout("Linked providers", user, csrfToken, activePath, tablos, pageTitle, breadcrumb, nil) {
<section class="mx-auto max-w-xl">
<h1 class="mb-6 text-xl font-semibold">Linked providers</h1>
<div class="space-y-2">

View file

@ -5,8 +5,8 @@ import (
"backend/internal/db/sqlc"
)
templ PlanningPage(user *auth.User, csrfToken string, activePath string, tablos []sqlc.Tablo, agenda PlanningAgenda) {
@AppLayout("Planning - Xtablo", user, csrfToken, activePath, tablos) {
templ PlanningPage(user *auth.User, csrfToken string, activePath string, tablos []sqlc.Tablo, agenda PlanningAgenda, pageTitle string, breadcrumb []BreadcrumbItem) {
@AppLayout("Planning - Xtablo", user, csrfToken, activePath, tablos, pageTitle, breadcrumb, nil) {
<section class="overview-section">
<div class="overview-section-heading">
<div>

View file

@ -9,8 +9,8 @@ import (
// TablosDashboard renders the root authenticated dashboard with sidebar AppLayout.
// Shows a project-card grid (or empty state) for the user's tablos.
// UI-SPEC §1 Interaction Contract — GET /.
templ TablosDashboard(user *auth.User, csrfToken string, activePath string, tablos []sqlc.Tablo, cards []TabloCardView) {
@AppLayout("Tablos — Xtablo", user, csrfToken, activePath, tablos) {
templ TablosDashboard(user *auth.User, csrfToken string, activePath string, tablos []sqlc.Tablo, cards []TabloCardView, pageTitle string, breadcrumb []BreadcrumbItem) {
@AppLayout("Tablos — Xtablo", user, csrfToken, activePath, tablos, pageTitle, breadcrumb, nil) {
<section class="overview-section">
<div class="overview-section-heading">
<h3>Your Tablos</h3>
@ -238,8 +238,8 @@ templ TabloCardWithOOBFormClear(tablo sqlc.Tablo, csrfToken string) {
// activePath and sidebarTablos drive the AppLayout sidebar.
// UI-SPEC §3 Interaction Contract — GET /tablos/{id}.
// D-07: signature includes activeTab string param; D-08: tab bar links carry hx-push-url.
templ TabloDetailPage(user *auth.User, csrfToken string, activePath string, sidebarTablos []sqlc.Tablo, tablo sqlc.Tablo, tasks []sqlc.Task, etapes []sqlc.Etape, counts EtapeTaskCounts, filter EtapeFilter, files []sqlc.TabloFile, events EventsCalendar, discussion DiscussionTabData, activeTab string) {
@AppLayout("Tablos — Xtablo", user, csrfToken, activePath, sidebarTablos) {
templ TabloDetailPage(user *auth.User, csrfToken string, activePath string, sidebarTablos []sqlc.Tablo, tablo sqlc.Tablo, tasks []sqlc.Task, etapes []sqlc.Etape, counts EtapeTaskCounts, filter EtapeFilter, files []sqlc.TabloFile, events EventsCalendar, discussion DiscussionTabData, activeTab string, pageTitle string, breadcrumb []BreadcrumbItem) {
@AppLayout("Tablos — Xtablo", user, csrfToken, activePath, sidebarTablos, pageTitle, breadcrumb, nil) {
<!-- Header: project-card-top layout with color avatar, title zone, and action controls -->
<div class="px-4 pt-4">
<div class="project-card-top">
@ -645,7 +645,7 @@ templ TabloDeleteConfirmFragment(tablo sqlc.Tablo, csrfToken string) {
// activePath and sidebarTablos drive the AppLayout sidebar (pass "" and empty slice for not-found).
// UI-SPEC Copywriting Contract: "Not found" + "This tablo doesn't exist or you don't have access."
templ TabloNotFoundPage(user *auth.User, csrfToken string, activePath string, sidebarTablos []sqlc.Tablo) {
@AppLayout("Not found", user, csrfToken, activePath, sidebarTablos) {
@AppLayout("Not found", user, csrfToken, activePath, sidebarTablos, "Not found", nil, nil) {
<div class="py-16 text-center">
<h1 class="text-2xl font-semibold leading-snug text-slate-800">Not found</h1>
<p class="mt-2 text-base text-slate-600">This tablo doesn&#39;t exist or you don&#39;t have access.</p>