dify/web/app/(commonLayout)/layout.tsx
CodingOnStar 6b95723f1c feat: integrate Amplitude analytics for event tracking
- Added AmplitudeProvider component to initialize Amplitude analytics.
- Updated layout components to include AmplitudeProvider for tracking.
- Introduced utility functions for tracking events, setting user ID, and managing user properties.
- Updated package.json and pnpm-lock.yaml to include @amplitude/analytics-browser dependency.
2025-11-17 14:06:50 +08:00

44 lines
1.5 KiB
TypeScript

import React from 'react'
import type { ReactNode } from 'react'
import SwrInitializer from '@/app/components/swr-initializer'
import { AppContextProvider } from '@/context/app-context'
import GA, { GaType } from '@/app/components/base/ga'
import AmplitudeProvider from '@/app/components/amplitude'
import HeaderWrapper from '@/app/components/header/header-wrapper'
import Header from '@/app/components/header'
import { EventEmitterContextProvider } from '@/context/event-emitter'
import { ProviderContextProvider } from '@/context/provider-context'
import { ModalContextProvider } from '@/context/modal-context'
import GotoAnything from '@/app/components/goto-anything'
import Zendesk from '@/app/components/base/zendesk'
import ReadmePanel from '@/app/components/plugins/readme-panel'
import Splash from '../components/splash'
const Layout = ({ children }: { children: ReactNode }) => {
return (
<>
<GA gaType={GaType.admin} />
<AmplitudeProvider />
<SwrInitializer>
<AppContextProvider>
<EventEmitterContextProvider>
<ProviderContextProvider>
<ModalContextProvider>
<HeaderWrapper>
<Header />
</HeaderWrapper>
{children}
<ReadmePanel />
<GotoAnything />
<Splash />
</ModalContextProvider>
</ProviderContextProvider>
</EventEmitterContextProvider>
</AppContextProvider>
<Zendesk />
</SwrInitializer>
</>
)
}
export default Layout