Spaces:
Build error
Build error
import type { FC } from 'react' | |
import React from 'react' | |
import Script from 'next/script' | |
import { headers } from 'next/headers' | |
import { IS_CE_EDITION } from '@/config' | |
export enum GaType { | |
admin = 'admin', | |
webapp = 'webapp', | |
} | |
const gaIdMaps = { | |
[GaType.admin]: 'G-DM9497FN4V', | |
[GaType.webapp]: 'G-2MFWXK7WYT', | |
} | |
export type IGAProps = { | |
gaType: GaType | |
} | |
const GA: FC<IGAProps> = ({ | |
gaType, | |
}) => { | |
if (IS_CE_EDITION) | |
return null | |
const nonce = process.env.NODE_ENV === 'production' ? headers().get('x-nonce') : '' | |
return ( | |
<> | |
<Script | |
strategy="beforeInteractive" | |
async | |
src={`https://www.googletagmanager.com/gtag/js?id=${gaIdMaps[gaType]}`} | |
nonce={nonce!} | |
></Script> | |
<Script | |
id="ga-init" | |
dangerouslySetInnerHTML={{ | |
__html: ` | |
window.dataLayer = window.dataLayer || []; | |
function gtag(){dataLayer.push(arguments);} | |
gtag('js', new Date()); | |
gtag('config', '${gaIdMaps[gaType]}'); | |
`, | |
}} | |
nonce={nonce!} | |
> | |
</Script> | |
</> | |
) | |
} | |
export default React.memo(GA) | |