import NextHead from 'next/head'
import NextScript from 'next/script'
import { MetaTag } from 'next-seo/lib/types'
import { LogoJsonLd } from 'next-seo'
import { imageServiceNoWebp } from '../../utils/imageServices'
import FbqPixel from '../tracking/FbqPixel'
import Gtag from '../tracking/Gtag'
import AdRoll from '../tracking/AdRoll'
import { useSettings } from '../provider/SettingsPageProvider'
import GtmManager from '../tracking/GtmManager'
import { useAppContext } from '@context/AppContext'
import React from 'react'
import { getFontBasedOnSetting } from '../../utils/parseFont'
const isDevelopment = process.env.NODE_ENV !== 'production'
function AppHead(): JSX.Element {
const settings = useSettings()
const favicon = settings.setup_favicon
const { insideStoryblok } = useAppContext()
const additionalMetaTags: MetaTag[] = []
if (settings?.pwa_app_name && settings?.pwa_app_description) {
additionalMetaTags.push(
{
name: 'application-name',
content: settings.pwa_app_name
},
{
name: 'apple-mobile-web-app-capable',
content: 'yes'
},
{
name: 'apple-mobile-web-app-status-bar-style',
content: 'default'
},
{
name: 'apple-mobile-web-app-title',
content: settings.pwa_app_name
},
{
name: 'description',
content: settings.pwa_app_description
},
{
name: 'format-detection',
content: 'telephone=no'
},
{
name: 'mobile-web-app-capable',
content: 'yes'
},
{
name: 'theme-color',
content: '#FFFFFF'
}
)
}
if (settings.setup_google_site_verification) {
additionalMetaTags.push({
name: 'google-site-verification',
content: settings.setup_google_site_verification
})
}
return (
<>
{settings.website_logo && settings.seo_website_url && (
)}
{additionalMetaTags.map((item) => (
))}
{favicon && (
<>
>
)}
{settings?.pwa_app_name && settings?.pwa_app_description && (
)}
{settings?.custom_css && (
)}
{!process.env.NEXT_PUBLIC_DISABLE_GOOGLE_FONTS && (
)}
{!isDevelopment && !insideStoryblok && settings?.setup_facebook_pixel && (
)}
{!isDevelopment &&
!insideStoryblok &&
settings?.setup_ad_roll_adv_id &&
settings?.setup_ad_roll_pix_id && (
)}
{!isDevelopment &&
!insideStoryblok &&
settings?.setup_google_analytics && (
)}
{!isDevelopment &&
!insideStoryblok &&
process.env.NEXT_PUBLIC_GTM_CONTAINER && }
{settings.scripts?.map((item) =>
item.url ? (
) : (
)
)}
>
)
}
function parseToAttributes(attributes?: string) {
if (attributes) {
const stripped = attributes.split(',').map((i) => i.trim())
return stripped.reduce((previousValue, currentValue) => {
const val = currentValue.split('=')
return {
...previousValue,
[val[0]]: val[1]
}
}, {})
}
return undefined
}
export default AppHead