# 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 })
}}
>
);
}
```