Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 32 additions & 14 deletions pages/docs/tracking-methods/integrations/nextjs.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -73,24 +73,42 @@ import { dataItems } from "/utils/constants";
export default MyApp;
```

b. **If using app router**, open or create the file `layout.js` or `layout.tsx` in your app/ directory
b. **If using app router**, create a file `MixpanelProvider.js` or `MixpanelProvider.tsx` in your root directory
```javascript
'use client';

import { useEffect } from 'react';
import { usePathname } from 'next/navigation';
import { initMixpanel } from '../lib/mixpanelClient';

export default function RootLayout({ children }) {

'use client;

import { initMixpanel } from './lib/mixpanel;
import { ReactNode, useEffect } from 'react';

export function MixpanelProvider({ children }: { children: ReactNode }) {
useEffect(() => {
initMixpanel(); // Initialize Mixpanel
initMixpanel();
}, []);

return children;
}

export default MixpanelProvider;
```

Then wrap your app with the provider in your root `layout.js` or `layout.tsx` file:
```javascript
import './globals.css';
import React from 'react';
import MixpanelProvider from '../MixpanelProvider';

export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="en">
<body>{children}</body>
</html>
<html>
<body>
<MixpanelProvider>
{children}
</MixpanelProvider>
</body>
</html>
);
}
```
Expand Down