{/* Contenu de la page (Outlet = enfant de la route) */}
{/* Navigation fixe en bas */}
);
};
```
## Animations de transition
### Configuration dans appConfig
```
// appConfig.js
export const config = {
pages: {
// Depuis la home
"/": {
"/settings": "slideLeft", // Home → Settings : slide vers la gauche
"/items/*": "slideLeft", // Home → Item : slide vers la gauche
"*": "fade", // Autres : fade
},
// Depuis settings
"/settings": {
"/": "slideRight", // Settings → Home : slide vers la droite
},
// Par défaut
"*": "fade",
},
};
```
### Animations disponibles
^ Animation ^ Description ^
| ''fade'' | Fondu enchaîné |
| ''slideLeft'' | Glissement vers la gauche |
| ''slideRight'' | Glissement vers la droite |
| ''zoom'' | Zoom avant/arrière |
Voir [[animations|Animations]] pour plus de détails.
## Gestion d'erreurs
### Page 404
```
// src/components/pages/errors/Error404Page/index.jsx
import { useNavigation } from '@cap-rel/smartcommon';
export const Error404Page = () => {
const navigate = useNavigation();
return (
404
Page non trouvée
);
};
```
### Redirection conditionnelle
```
import { Navigate, useLocation } from 'react-router-dom';
import { useGlobalStates } from '@cap-rel/smartcommon';
const RequireAuth = ({ children }) => {
const [session] = useGlobalStates('session');
const location = useLocation();
if (!session) {
// Sauvegarder l'URL pour rediriger après login
return ;
}
return children;
};
```
## Bonnes pratiques
### Structure des routes
* Groupez les routes par type (public, private, errors)
* Utilisez des guards pour la protection
* Placez le fallback ''*'' en dernier
### Navigation
* Préférez ''useNavigation'' de SmartCommon
* Utilisez ''replace: true'' pour les redirections (login, logout)
* Évitez les chemins hardcodés, utilisez des constantes
### Performance
* Lazy loading pour les grosses pages
* Animations légères sur mobile
* Pré-chargement des données critiques
## Voir aussi
* [[animations|Animations]] - Transitions de pages
* [[composants_et_pages|Composants et pages]] - Structure des pages
* [[hooks|Hooks]] - useNavigation
* [[configuration|Configuration]] - Options du Provider