Skip to content

Layout Full

simone.tiberti edited this page May 14, 2026 · 1 revision

FullLayoutComponent

Shell completa dell'applicazione. Include:

  • Sidenav laterale sinistra collassabile con le voci di menu
  • Toolbar superiore con menu burger, titolo app, nome utente, logout
  • App-switcher laterale destro (overlay mat-sidenav) con accesso alle altre applicazioni GPA
  • Router outlet per il contenuto della pagina corrente
  • <core-toast />, <core-confirm />, <core-alert /> già integrati

Non è necessario usare FullLayoutComponent direttamente — viene applicato automaticamente da toRoutes() a tutte le rotte dichiarate in APP_ROUTES (è il layout di default).


Come funziona

toRoutes(APP_ROUTES) genera una struttura del tipo:

/                          ← FullLayoutComponent + MenuGuard
├── ''                     ← HomeComponent
├── 'users'                ← UsersComponent
├── 'users/:id'            ← UserDetailComponent
├── 'forbidden'            ← ForbiddenComponent
└── '**'                   ← NotFoundComponent

Stato del bootstrap

Il layout legge layoutState direttamente da SystemService — non avvia il bootstrap né mantiene stato locale. Il bootstrap è avviato automaticamente dal service al lancio dell'app.

layoutState: 'loading' | 'ready' | 'error'
Stato Visualizzazione
loading <core-loading-overlay /> — spinner a schermo intero
ready Layout completo: sidenav + toolbar + content
error <page-error /> — pagina di errore inline (icona + messaggio)

Lo stato error viene attivato quando il bootstrap fallisce (environment o token non raggiungibili). Non avviene nessun redirect — la schermata di errore è mostrata in-place.


Sidenav (sinistra)

  • Mostra le rotte con menu: true, ordinate per order
  • Icona + etichetta per ogni voce
  • Si collassa a icone-only tramite il bottone burger nella toolbar
  • La larghezza in stato espanso viene misurata dinamicamente sul testo effettivo tramite afterRenderEffect

Toolbar

Elemento Descrizione
Bottone burger Espande/collassa la sidenav
Titolo appDescription da environment.json
Nome utente whoami().user dal token
Icona logout Naviga a environment.logoutPath
Icona more_vert Apre l'app-switcher laterale destro

App-switcher (destra)

Pannello overlay (mat-sidenav mode="over" position="end") implementato dal componente condiviso AppSwitcherComponent (core-app-switcher). Mostra le applicazioni disponibili ricevute dal token. L'app corrente è visivamente disabilitata. Include link logout e la versione build (AppVersion, AppSha).

Se environment.json contiene il campo logoUrl, viene mostrato un logo circolare in cima al pannello:

{ "logoUrl": "https://cdn.example.com/logo-myapp.png" }

Se il campo è assente, il logo non compare.


Componenti già integrati

core-toast, core-confirm e core-alert sono già presenti nel template del FullLayoutComponent. Non è necessario aggiungere questi tag nelle pagine.

Se si usa SimpleLayoutComponent o un layout personalizzato, aggiungerli manualmente:

<core-toast />
<core-confirm />
<core-alert />

Vedi anche

Clone this wiki locally