longevity: nessuna pagina senza uscita, "Il mio referto" solo a chi ha un fascicolo

Refs #10

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-26 13:48:03 +00:00
parent e74266f9a0
commit 22a400b854
4 changed files with 50 additions and 2 deletions
+15 -1
View File
@@ -14,6 +14,7 @@ import '@fontsource/open-sans/400.css';
import '@fontsource/open-sans/600.css';
import '../styles/global.css';
import '../styles/longevity.css';
import { codicePerUtenteLoggato } from '../lib/longevity/anagrafica';
interface Props {
title: string;
@@ -25,6 +26,13 @@ interface Props {
const { title, crumbs = [], variante = 'referto' } = Astro.props;
const path = Astro.url.pathname;
// Nessuna pagina di Longevity deve lasciare l'utente senza un'uscita (#10): il gestionale
// mostra "Il mio referto" solo a chi ha davvero un fascicolo, e il referto porta sempre
// un link fuori dalla piattaforma (più uno al gestionale, per lo staff).
const user = Astro.locals.user;
const staff = user?.role === 'admin' || user?.role === 'trainer';
const haFascicolo = user ? codicePerUtenteLoggato(user.id) !== null : false;
// Le voci della barra laterale del gestionale: nasce con due pagine, non le sette di
// Stress Index — un elenco più lungo arriverà con gli sviluppi futuri (#3, #7, #8).
const NAV_GESTIONALE = [
@@ -58,7 +66,9 @@ const NAV_GESTIONALE = [
{item.label}
</a>
))}
<a class="lg-nav__link lg-nav__link--referto" href="/longevity/io">Il mio referto</a>
{haFascicolo && (
<a class="lg-nav__link lg-nav__link--referto" href="/longevity/io">Il mio referto</a>
)}
</nav>
</aside>
<div class="lg-body">
@@ -78,6 +88,10 @@ const NAV_GESTIONALE = [
<strong>Longevity</strong>
{crumbs.map((c) => <span> / {c}</span>)}
</p>
<p class="lg-top__links">
{staff && <a class="lg-top__link" href="/longevity/gestionale">← Gestionale</a>}
<a class="lg-top__link" href="/piattaforme">Piattaforme</a>
</p>
</header>
<main class="lg-main"><slot /></main>
</div>