feat: enhance routing with dedicated error pages, improve navigation handling, and add internal path checks
This commit is contained in:
@@ -8,7 +8,7 @@ Sito web moderno e responsivo sviluppato con **Svelte + Vite** per presentare se
|
||||
- 📱 **Design completamente responsivo**
|
||||
- ⬆️ **Navbar collapsibile** con hide/show al scroll
|
||||
- 🎨 **Sistema di componenti riusabili**
|
||||
- 🚀 **Routing client-side** con pagine di errore dedicate
|
||||
- 🚀 **Routing client-side** con pagine dedicate e fallback 404
|
||||
- ♿ **Accessibilità** e buone pratiche web
|
||||
|
||||
## 🛠️ Requisiti
|
||||
@@ -58,16 +58,19 @@ src/
|
||||
|
||||
## 🗺️ Routing
|
||||
|
||||
Il routing è gestito in `src/App.svelte` tramite `window.location.pathname`.
|
||||
Il routing è gestito in `src/App.svelte` leggendo `window.location.pathname` e reagendo ai cambi di History API.
|
||||
|
||||
| Route | Componente | Descrizione |
|
||||
|-------|-----------|-------------|
|
||||
| `/` | `Hero` + `Services` | Home page |
|
||||
| `/contatti`, `/contacts` | `Contacts` | Pagina contatti |
|
||||
| `/403` | `Forbidden` | Accesso negato |
|
||||
| `/404` | `NotFound` | Pagina non trovata |
|
||||
| `/500` | `ServerError` | Errore server |
|
||||
| `/errore` | `ErrorGeneric` | Errore generico |
|
||||
| `/*` | `NotFound` | Pagina non trovata (404) |
|
||||
| qualsiasi altra route | `NotFound` | Fallback 404 per pagine non ancora create |
|
||||
|
||||
Le voci della navbar puntano a route reali come `/servizi`, `/metodo`, `/progetti` e `/chi-siamo`: se una pagina non esiste ancora, il contenuto mostrato è il 404 ma l'URL resta quello richiesto.
|
||||
|
||||
## 🎨 Tema e Stili
|
||||
|
||||
@@ -141,19 +144,24 @@ Componente button/link riusabile con tema integrato.
|
||||
- `href` - se presente, renderizza come `<a>` tag
|
||||
- `borderWidth` - spessore bordo interno (default: `'0px'`)
|
||||
|
||||
Se `href` punta a una route interna, il click usa la navigazione client-side e aggiorna il contenuto senza ricaricare la pagina.
|
||||
|
||||
### Header
|
||||
|
||||
Navbar sticky che si nascondi al scroll verso il basso e riappare al scroll verso l'alto.
|
||||
Navbar sticky che si nasconde al scroll verso il basso e riappare al scroll verso l'alto.
|
||||
|
||||
Le voci della navbar usano route interne. Le pagine non ancora create devono restituire 404.
|
||||
|
||||
Modifica il contenuto in `src/components/Header/Header.svelte`.
|
||||
|
||||
### ThemeToggle
|
||||
|
||||
Pulsante per switchare tra tema light e dark. Il tema viene salvato in `localStorage`.
|
||||
Pulsante per switchare tra tema light e dark. Il tema viene salvato in `localStorage` e come backup in cookie, così resta disponibile anche dopo operazioni che puliscono parte dello storage del browser.
|
||||
|
||||
## 📱 Modificare i contenuti
|
||||
|
||||
- **Header/Navigazione:** `src/components/Header/Header.svelte`
|
||||
- **Routing e redirect:** `src/App.svelte`, `src/lib/navigation.js`, `src/lib/errorRouting.js`
|
||||
- **Sezione hero:** `src/components/Hero/Hero.svelte`
|
||||
- **Servizi:** `src/components/Services/Services.svelte`
|
||||
- **Footer:** `src/components/Footer/Footer.svelte`
|
||||
@@ -181,6 +189,8 @@ const getRoute = (path) => {
|
||||
<MyPage />
|
||||
```
|
||||
|
||||
Se non aggiungi la route in `getRoute`, il path continuerà a mostrare il fallback 404.
|
||||
|
||||
## 🚀 Build e Deploy
|
||||
|
||||
### Build di produzione
|
||||
|
||||
Reference in New Issue
Block a user