dify/web/app/components/base/analytics-consent/cloud-analytics.tsx
Coding On Star c6ca395042
fix(web): make registration tracking consent-safe and retryable (#41365)
Co-authored-by: CodingOnStar <hanxujiang@dify.com>
2026-08-31 03:39:37 +00:00

29 lines
1.0 KiB
TypeScript

import { COOKIEYES_SITE_KEY, IS_PROD, WEB_PREFIX } from '@/config'
import { getCachedSystemFeatures } from '@/features/system-features/server'
import { headers } from '@/next/headers'
import { AnalyticsDisabled } from './analytics-disabled'
import { CloudAnalyticsLayoutBoundary } from './cloud-analytics-layout-boundary'
import { isCloudAnalyticsRequest } from './request-boundary'
export async function CloudAnalytics() {
const systemFeatures = getCachedSystemFeatures()
if (!systemFeatures) return null
const requestHeaders = await headers()
const requestHost = requestHeaders.get('x-forwarded-host') || requestHeaders.get('host')
const enabled = isCloudAnalyticsRequest({
cookieYesSiteKey: COOKIEYES_SITE_KEY,
deploymentEdition: systemFeatures.deployment_edition,
isProd: IS_PROD,
requestHost,
webPrefix: WEB_PREFIX,
})
if (!enabled) return <AnalyticsDisabled />
const nonce = requestHeaders.get('x-nonce') ?? undefined
return <CloudAnalyticsLayoutBoundary cookieYesSiteKey={COOKIEYES_SITE_KEY} nonce={nonce} />
}