import { memo } from 'react' import { IS_PROD, ZENDESK_WIDGET_KEY } from '@/config' import { getQueryClientServer } from '@/context/query-client-server' import { headers } from '@/next/headers' import Script from '@/next/script' import { serverConsoleQuery } from '@/service/server' const Zendesk = async () => { if (!ZENDESK_WIDGET_KEY) return null const queryClient = getQueryClientServer() const systemFeaturesQuery = serverConsoleQuery.systemFeatures.get.queryOptions() await queryClient.prefetchQuery(systemFeaturesQuery) const systemFeatures = queryClient.getQueryData(systemFeaturesQuery.queryKey) if (!systemFeatures || systemFeatures.deployment_edition !== 'CLOUD') return null const nonce = IS_PROD ? ((await headers()).get('x-nonce') ?? '') : '' /* v8 ignore next -- `nonce` is always a string (`''` or header value), so nullish fallback is unreachable in runtime. @preserve */ const scriptNonce = nonce ?? undefined return ( <> ) } export default memo(Zendesk)