useNavigationController
Utilisez ce hook pour accéder au contrôleur de navigation de l’application. Ce contrôleur sert de point central pour :
- Accéder à la configuration résolue des collections et des vues.
- Résoudre les chemins et les identifiants (par exemple, convertir un chemin URL en chemin de base de données).
- Navigation programmatique.
Utilisation
Section intitulée « Utilisation »import React from "react";import { useNavigationController } from "@firecms/core";import { Button } from "@firecms/ui";
export function NavigationExample() { const navigationController = useNavigationController();
const goToProducts = () => { // Naviguer vers la collection de produits // Ceci gère le routage correct en interne navigationController.navigate("/c/products"); };
// Vous pouvez également récupérer des collections par leur ID const productsCollection = navigationController.getCollection("products");
return ( <div> <p>Nom de la collection de produits : {productsCollection?.name}</p> <Button onClick={goToProducts}>Aller aux Produits</Button> </div> );}Méthodes et propriétés clés
Section intitulée « Méthodes et propriétés clés »collections: Liste de toutes les collections d’entités résolues.views: Liste des vues personnalisées de niveau supérieur.getCollection(pathOrId, includeUserOverride?): Obtenir une collection par sonidou sonpath.navigate(to, options?): Naviguer vers une route spécifique.refreshNavigation(): Forcer un recalcul de la structure de navigation (utile si vos collections sont dynamiques).urlPathToDataPath(cmsPath): Convertir une URL CMS en chemin de source de données.- Exemple :
/c/products/B34SAP8Z->products/B34SAP8Z
- Exemple :
buildUrlCollectionPath(path): Convertir un chemin de source de données en URL CMS.- Exemple :
products->/c/products
- Exemple :
resolveIdsFrom(pathWithAliases): Résoudre les alias dans un chemin vers leurs identifiants réels.
Interface NavigationController
Section intitulée « Interface NavigationController »export type NavigationController = { collections?: EntityCollection[]; views?: CMSView[]; loading: boolean; initialised: boolean;
getCollection: (pathOrId: string, includeUserOverride?: boolean) => EntityCollection | undefined; getCollectionById: (id: string) => EntityCollection | undefined;
navigate: (to: string, options?: NavigateOptions) => void; refreshNavigation: () => void;
// ... méthodes utilitaires pour la résolution de chemins}