π₯ Nutrition Module (React Native)
The Nutrition module's screens are reached through the typed Destination factory:
import { Destination } from 'react-native-azeoo-lib';
sdk.navigate(Destination.nutrition.plan('abc-123'));
Embedding the module (via the <NutritionView /> component) is documented further down; this page is the destination reference.
Destinationsβ
Every routable nutrition screen, as a factory on Destination.nutrition:
| Factory call | Shows |
|---|---|
Destination.nutrition.home() | Nutrition home (today's diary) |
Destination.nutrition.diary(date?) | Diary for a specific Date (omit for today) |
Destination.nutrition.plans() | List of nutrition plans |
Destination.nutrition.plan(id) | A specific nutrition plan |
Destination.nutrition.recipes() | Recipe list |
Destination.nutrition.recipe(id, name?) | A specific recipe |
Destination.nutrition.scanner(kind?) | Scanner ('barcode' | 'mobile' | 'ai') |
Destination.nutrition.search(initialMealType?) | Food search |
Destination.nutrition.addFood(mealType) | Add food flow |
Destination.nutrition.addMeal(mealType) | Add meal flow |
Destination.nutrition.cart() | Shopping cart |
Destination.nutrition.shoppingList() | Shopping list |
Destination.nutrition.settings() | Nutrition settings |
Destination.nutrition.addSelection() | Add food/meal selection |
Destination.nutrition.permissionTest() | Permission test (debug) |
Supporting typesβ
export type ScannerKind = 'barcode' | 'mobile' | 'ai';
export type MealType = 'breakfast' | 'lunch' | 'dinner' | 'snack';
Examplesβ
Open a specific planβ
await sdk.navigate(Destination.nutrition.plan('summer-plan-2025'));
Open a recipe with a display nameβ
await sdk.navigate(Destination.nutrition.recipe(12345, 'Grilled Chicken Salad'));
Open the diary for a specific dateβ
const yesterday = new Date(Date.now() - 24 * 60 * 60 * 1000);
await sdk.navigate(Destination.nutrition.diary(yesterday));
Open the add-food flow for breakfastβ
await sdk.navigate(Destination.nutrition.addFood('breakfast'));
Open the AI scannerβ
await sdk.navigate(Destination.nutrition.scanner('ai'));
Embedding the 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)}
/>
);
}
Adaptive native navigationβ
If your RN app has tabs or other native nav, install a module container callback once so cross-module sdk.navigate(...) flips your JS-side state:
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]);
Going backβ
await sdk.goBack(); // pop one screen
await sdk.backToRoot(); // back to nutrition home
const can = await sdk.canGoBack();