Aller au contenu principal

🥗 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 fabriqueAffiche
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)}
/>
);
}

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();

Voir aussi