Skip to main content

πŸ₯— 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 callShows
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();

See also​