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:
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user