🥗 Module nutrition (React Native)
Les écrans du module nutrition sont atteints via la fabrique typée Destination :
import { Destination } from 'react-native-azeoo-lib';
sdk.navigate(Destination.nutrition.plan('abc-123'));
L'intégration du module (via le composant <NutritionView />) est documentée plus bas ; cette page est la référence des destinations.
Destinations
Chaque écran nutrition routable, en fabrique sur Destination.nutrition :
| Appel de fabrique | Affiche |
|---|---|
Destination.nutrition.home() | Accueil nutrition (journal du jour) |
Destination.nutrition.diary(date?) | Journal pour une Date donnée (omis = aujourd'hui) |
Destination.nutrition.plans() | Liste des plans nutrition |
Destination.nutrition.plan(id) | Un plan nutrition spécifique |
Destination.nutrition.recipes() | Liste des recettes |
Destination.nutrition.recipe(id, name?) | Une recette spécifique |
Destination.nutrition.scanner(kind?) | Scanner ('barcode' | 'mobile' | 'ai') |
Destination.nutrition.search(initialMealType?) | Recherche d'aliments |
Destination.nutrition.addFood(mealType) | Flux d'ajout d'aliment |
Destination.nutrition.addMeal(mealType) | Flux d'ajout de repas |
Destination.nutrition.cart() | Panier |
Destination.nutrition.shoppingList() | Liste de courses |
Destination.nutrition.settings() | Paramètres nutrition |
Destination.nutrition.addSelection() | Sélection aliment/repas |
Destination.nutrition.permissionTest() | Test de permissions (debug) |
Types associés
export type ScannerKind = 'barcode' | 'mobile' | 'ai';
export type MealType = 'breakfast' | 'lunch' | 'dinner' | 'snack';
Exemples
Ouvrir un plan spécifique
await sdk.navigate(Destination.nutrition.plan('summer-plan-2025'));
Ouvrir une recette avec un nom d'affichage
await sdk.navigate(Destination.nutrition.recipe(12345, 'Grilled Chicken Salad'));
Ouvrir le journal pour une date donnée
const yesterday = new Date(Date.now() - 24 * 60 * 60 * 1000);
await sdk.navigate(Destination.nutrition.diary(yesterday));
Ouvrir le flux d'ajout d'aliment pour le petit-déjeuner
await sdk.navigate(Destination.nutrition.addFood('breakfast'));
Ouvrir le scanner IA
await sdk.navigate(Destination.nutrition.scanner('ai'));
Intégrer le module
import { NutritionView } from 'react-native-azeoo-lib';
export default function NutritionTab() {
return (
<NutritionView
bottomSafeArea={false}
onLoad={() => console.log('Nutrition ready')}
onError={(err) => console.error(err)}
/>
);
}
Navigation native adaptative
Si votre app RN a des onglets ou autre nav native, installez un callback conteneur de module une fois pour que les sdk.navigate(...) inter-modules basculent votre état JS :
useEffect(() => {
if (!sdk) return;
sdk.setModuleContainer((module) => {
if (module === 'nutrition') { setActiveTab('nutrition'); return true; }
if (module === 'training') { setActiveTab('training'); return true; }
return false;
});
return () => sdk.setModuleContainer(null);
}, [sdk]);
Revenir en arrière
await sdk.goBack(); // pop one screen
await sdk.backToRoot(); // back to nutrition home
const can = await sdk.canGoBack();