# Examples URL: /concepts/additional-context/examples Practical examples of context helpers for common use cases. ## E-commerce Context ```tsx const cartHelper = async () => ({ itemCount: getCartItemCount(), totalValue: getCartTotal(), items: getCartItems().map((item) => ({ id: item.id, name: item.name, price: item.price, })), }); const preferencesHelper = async () => ({ currency: getUserCurrency(), shippingAddress: await getUserShippingAddress(), paymentMethods: (await getSavedPaymentMethods()).length, }); // Register globally with TamboProvider ; // Or register locally per page/layout with TamboContextHelpersProvider ; ``` ## Analytics Context ```tsx const analyticsHelper = async () => ({ sessionDuration: getSessionDuration(), pageViews: getPageViewCount(), referrer: document.referrer, utm_params: getUTMParameters(), userSegment: await getUserSegment(), }); // Local registration example ; ``` ## Location-Based Context ```tsx const locationHelper = async () => { try { const position: GeolocationPosition = await new Promise( (resolve, reject) => { navigator.geolocation.getCurrentPosition(resolve, reject); }, ); return { latitude: position.coords.latitude, longitude: position.coords.longitude, accuracy: position.coords.accuracy, }; } catch { return { error: "Location unavailable" }; } }; // Register only where geolocation is needed ; ``` ## Authentication Context ```tsx const authHelper = async () => { const user = await getCurrentUser(); return { isAuthenticated: !!user, userId: user?.id, role: user?.role, permissions: user?.permissions || [], organizationId: user?.organizationId, }; }; // Either global or page-scoped ; ``` ## Feature Flags Context ```tsx const featureHelper = async () => ({ flags: await getFeatureFlags(), experiments: await getActiveExperiments(), userCohort: getUserCohort(), }); ; ``` ## Multi-tenant Context ```tsx const tenantHelper = async () => { const tenant = await getCurrentTenant(); return { tenantId: tenant.id, tenantName: tenant.name, subscription: tenant.subscriptionTier, customizations: tenant.customSettings, }; }; ; ``` ## Complete Example ```tsx import { TamboProvider, TamboContextHelpersProvider } from "@tambo-ai/react"; import { currentTimeContextHelper, currentPageContextHelper, } from "@tambo-ai/react"; const sessionHelper = async () => ({ sessionId: getSessionId(), startTime: getSessionStartTime(), duration: getSessionDuration(), }); const userHelper = async () => ({ id: getUserId(), role: getUserRole(), preferences: await getUserPreferences(), }); const appHelper = () => ({ version: APP_VERSION, environment: process.env.NODE_ENV, buildTime: BUILD_TIMESTAMP, }); function App() { return ( {/* Page-level overrides/additions */} ({ ...customSessionForThisPage }) }} > ); } ```