Aller au contenu principal

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) :

ObjectifAppel
Racine journal / onglet nutritionshowNutrition(bottomSafeArea) (ou displayNutritionModal) — bascule vers l’onglet nutrition depuis l’accueil du journal
Liste des plans nutritionnavigateTo('nutrition', 'plans')
Plan unique par idnavigateTo('nutrition', 'plans/plan-123')
RecettesnavigateTo('nutrition', 'recipes')
Filtres des recettesnavigateTo('nutrition', 'recipes/filters')
Détail de recettenavigateTo('nutrition', 'recipes/12345')
Scanner de codes-barresnavigateTo('nutrition', 'scanner/barcode')
Scanner mobilenavigateTo('nutrition', 'scanner/mobile')
PaniernavigateTo('nutrition', 'cart')
RecherchenavigateTo('nutrition', 'search')
Liste d’achatsnavigateTo('nutrition', 'shopping-list')
Entrée du flux d’ajoutnavigateTo('nutrition', 'add')
Test de permissions (dev / QA)navigateTo('nutrition', 'permission-test')
Paramètres nutritionnavigateTo('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