Module Nutrition (React Native)
L’expérience nutrition (journal, plans, recettes, scanner, panier, recherche, etc.) est fournie à l’intérieur de react-native-azeoo-lib. Il n’y a pas d’objet séparé AzeooUI.instance.nutrition : utilisez getAzeooSDK() ou useAzeoo().sdk après initialize et connect.
Moyens d’ouvrir l’UI nutrition
1. Vue intégrée
Rendez NutritionView sous AzeooProvider une fois l’utilisateur connecté. Voir Composants UI.
2. Plein écran ou modale depuis l’application hôte
Sur l’instance partagée du SDK :
showNutrition(bottomSafeArea)/hideNutrition()— affiche le module nutrition comme le fait le SDK pour les flux plein écran.displayNutritionModal(bottomSafeArea)/dismissNutritionModal()— l’affiche sous forme de feuille modale (modal sheet).
bottomSafeArea est un boolean (souvent true) ; utilisez false si votre application gère déjà le padding en bas.
3. Naviguer vers un écran spécifique dans le module
Appelez navigateTo('nutrition', screen), où screen est le segment situé après /nutrition dans le chemin de navigation (sans slash initial). Le gestionnaire bascule sur l’onglet nutrition, puis pousse /nutrition/<screen> (si screen est vide, cela devient /nutrition/; pour la racine du journal, préférez showNutrition ci-dessous).
Référence de chemin (2e argument de navigateTo, ou utilisez showNutrition pour la racine de l’onglet) :
| Objectif | Appel |
|---|---|
| Racine journal / onglet nutrition | showNutrition(bottomSafeArea) (ou displayNutritionModal) — bascule vers l’onglet nutrition depuis l’accueil du journal |
| Liste des plans nutrition | navigateTo('nutrition', 'plans') |
| Plan unique par id | navigateTo('nutrition', 'plans/plan-123') |
| Recettes | navigateTo('nutrition', 'recipes') |
| Filtres des recettes | navigateTo('nutrition', 'recipes/filters') |
| Détail de recette | navigateTo('nutrition', 'recipes/12345') |
| Scanner de codes-barres | navigateTo('nutrition', 'scanner/barcode') |
| Scanner mobile | navigateTo('nutrition', 'scanner/mobile') |
| Panier | navigateTo('nutrition', 'cart') |
| Recherche | navigateTo('nutrition', 'search') |
| Liste d’achats | navigateTo('nutrition', 'shopping-list') |
| Entrée du flux d’ajout | navigateTo('nutrition', 'add') |
| Test de permissions (dev / QA) | navigateTo('nutrition', 'permission-test') |
| Paramètres nutrition | navigateTo('nutrition', 'settings') |
Les chemins imbriqués suivent le même motif (ex. détail aliment foods/<id>, détail repas meals/<id>, étapes d’ajout d’aliment sous foods/add/..., ajout de repas sous meals/add/...).
Les paramètres de requête (ex. date du journal, nom de recette) sont supportés sur l’API native de navigation via une map params ; l’interface React Native actuelle n’expose que navigateTo(module, screen). Pour les URLs avec des query strings, handleDeepLink(uri) est généralement l’outil adapté une fois l’URL de base des deep links configurée.
La parité Flutter native pour des écrans plus fins (ex. showRecipe avec recipeName) existe dans l’API nutrition Pigeon ; si vous en avez besoin depuis JS au-delà du chemin + deep link, consultez la roadmap produit ou étendez le pont RN.
Revenir en arrière dans la pile Flutter : goBack() sur la même instance de SDK.
Esquisse de code
import { getAzeooSDK } from 'react-native-azeoo-lib';
const sdk = getAzeooSDK();
// After initialize + connect:
await sdk.showNutrition(true);
// or
await sdk.navigateTo('nutrition', 'scanner/barcode');
await sdk.goBack();
Les mêmes appels sont disponibles sous la forme const { sdk } = useAzeoo() lorsque vous êtes sous AzeooProvider.
Liens profonds
Les URL gérées par le SDK (scheme/host provenant de votre configuration d’initialisation) peuvent ouvrir des routes nutrition ; utilisez handleDeepLink(uri) si vous recevez des liens dans React Native. Voir Configuration et la liste des routes Flutter sous nutrition dans le routeur principal du SDK pour la forme des chemins.
Prochaines étapes
- Configuration — Personnaliser l’UI
- API du client — Référence API bas niveau