Skip to main content
Version: 1.0

Mealz Planner

Mealz Planner journeys use FeatureRoute.Planner: a compact entry block (CTA) and a full-screen menu (current menu / help).

iOS naming

FeatureRoute.Planner.CurrentMenu flattens to FeatureRoute.Planner.PlannerCurrentMenu in Swift.

Visual Overview​

Mealz Planner entry Mealz Planner current menu

Mealz Planner Entry — Parameters​

Compact CTA to start / resume Mealz Planner (fixed height, full width).

ParameterTypeRequiredDefaultWhat it does
navigationCallbackPlannerEntryNavigationCallbackyes—Open the Mealz Planner menu.
modifierCompose Modifierno—Layout.
stateContentstate overlaysnolibrary defaultOptional loading UI.

PlannerEntryNavigationCallback​

CallbackRequiredWhat you must do
goToPlanneryes(FeatureRoute.Planner) -> Unit — present the full Mealz Planner menu for the given route (usually CurrentMenu).

Base NavigationCallback redirects default to no-ops on this component — only goToPlanner matters.

Mealz Planner Menu — Parameters​

Full-screen Mealz Planner journey.

ParameterTypeRequiredDefaultWhat it does
routeFeatureRoute.PlannernoCurrentMenu()CurrentMenu(), Help(), …
navigationCallbackPlannerNavigationCallbackyes—Login / store / exit + optional cart and catalog.
modifierCompose Modifiernofills max sizeLayout.
stateContentstate overlaysnolibrary defaultOptional loading UI.

PlannerNavigationCallback​

CallbackRequiredWhat you must do
redirectToLogInyesOpen login.
redirectToStoreLocatoryesOpen store picker.
exityesClose the Mealz Planner screen.
redirectToCartnoOpen retailer cart. Defaults to null.
goToCatalogno(FeatureRoute.Catalog) -> Unit — open catalog when Mealz Planner links out.

Inject​

Entry

PlannerEntryViewController.companion.get(
    stateContent: nil,
    navigationCallback: PlannerEntryNavigationCallback(
        goToPlanner: { plannerRoute in
            // Present PlannerMenuViewController
        }
    )
)

Menu

PlannerMenuViewController.companion.get(
    route: FeatureRoute.Planner.PlannerCurrentMenu(extraParameters: [:]),
    stateContent: nil,
    navigationCallback: PlannerNavigationCallback(
        redirectToLogIn: { },
        redirectToStoreLocator: { },
        exit: { },
        redirectToCart: { },
        goToCatalog: { /* optional */ }
    )
)