import { siteConfig } from '@/lib/config'
import dynamic from 'next/dynamic'
import LA51 from './LA51'
import WebWhiz from './Webwhiz'
import TianLiGPT from './TianliGPT'
import { GlobalStyle } from './GlobalStyle'
import { CUSTOM_EXTERNAL_CSS, CUSTOM_EXTERNAL_JS, IMG_SHADOW } from '@/blog.config'
import { isBrowser, loadExternalResource } from '@/lib/utils'
const TwikooCommentCounter = dynamic(() => import('@/components/TwikooCommentCounter'), { ssr: false })
const DebugPanel = dynamic(() => import('@/components/DebugPanel'), { ssr: false })
const ThemeSwitch = dynamic(() => import('@/components/ThemeSwitch'), { ssr: false })
const Fireworks = dynamic(() => import('@/components/Fireworks'), { ssr: false })
const Nest = dynamic(() => import('@/components/Nest'), { ssr: false })
const FlutteringRibbon = dynamic(() => import('@/components/FlutteringRibbon'), { ssr: false })
const Ribbon = dynamic(() => import('@/components/Ribbon'), { ssr: false })
const Sakura = dynamic(() => import('@/components/Sakura'), { ssr: false })
const StarrySky = dynamic(() => import('@/components/StarrySky'), { ssr: false })
const DifyChatbot = dynamic(() => import('@/components/DifyChatbot'), { ssr: false });
const Analytics = dynamic(() => import('@vercel/analytics/react').then(async (m) => { return m.Analytics }), { ssr: false })
const MusicPlayer = dynamic(() => import('@/components/Player'), { ssr: false })
const Ackee = dynamic(() => import('@/components/Ackee'), { ssr: false })
const Gtag = dynamic(() => import('@/components/Gtag'), { ssr: false })
const Busuanzi = dynamic(() => import('@/components/Busuanzi'), { ssr: false })
const GoogleAdsense = dynamic(() => import('@/components/GoogleAdsense'), { ssr: false })
const Messenger = dynamic(() => import('@/components/FacebookMessenger'), { ssr: false })
const VConsole = dynamic(() => import('@/components/VConsole'), { ssr: false })
const CustomContextMenu = dynamic(() => import('@/components/CustomContextMenu'), { ssr: false })
const DisableCopy = dynamic(() => import('@/components/DisableCopy'), { ssr: false })
const AdBlockDetect = dynamic(() => import('@/components/AdBlockDetect'), { ssr: false })
const LoadingProgress = dynamic(() => import('@/components/LoadingProgress'), { ssr: false })
const AosAnimation = dynamic(() => import('@/components/AOSAnimation'), { ssr: false })
/**
* 各种插件脚本
* @param {*} props
* @returns
*/
const ExternalPlugin = (props) => {
const DISABLE_PLUGIN = siteConfig('DISABLE_PLUGIN')
const THEME_SWITCH = siteConfig('THEME_SWITCH')
const DEBUG = siteConfig('DEBUG')
const ANALYTICS_ACKEE_TRACKER = siteConfig('ANALYTICS_ACKEE_TRACKER')
const ANALYTICS_VERCEL = siteConfig('ANALYTICS_VERCEL')
const ANALYTICS_BUSUANZI_ENABLE = siteConfig('ANALYTICS_BUSUANZI_ENABLE')
const ADSENSE_GOOGLE_ID = siteConfig('ADSENSE_GOOGLE_ID')
const FACEBOOK_APP_ID = siteConfig('FACEBOOK_APP_ID')
const FACEBOOK_PAGE_ID = siteConfig('FACEBOOK_PAGE_ID')
const FIREWORKS = siteConfig('FIREWORKS')
const SAKURA = siteConfig('SAKURA')
const STARRY_SKY = siteConfig('STARRY_SKY')
const MUSIC_PLAYER = siteConfig('MUSIC_PLAYER')
const NEST = siteConfig('NEST')
const FLUTTERINGRIBBON = siteConfig('FLUTTERINGRIBBON')
const COMMENT_TWIKOO_COUNT_ENABLE = siteConfig('COMMENT_TWIKOO_COUNT_ENABLE')
const RIBBON = siteConfig('RIBBON')
const CUSTOM_RIGHT_CLICK_CONTEXT_MENU = siteConfig('CUSTOM_RIGHT_CLICK_CONTEXT_MENU')
const CAN_COPY = siteConfig('CAN_COPY')
const WEB_WHIZ_ENABLED = siteConfig('WEB_WHIZ_ENABLED')
const AD_WWADS_BLOCK_DETECT = siteConfig('AD_WWADS_BLOCK_DETECT')
const CHATBASE_ID = siteConfig('CHATBASE_ID')
const COMMENT_DAO_VOICE_ID = siteConfig('COMMENT_DAO_VOICE_ID')
const AD_WWADS_ID = siteConfig('AD_WWADS_ID')
const COMMENT_TWIKOO_ENV_ID = siteConfig('COMMENT_TWIKOO_ENV_ID')
const COMMENT_TWIKOO_CDN_URL = siteConfig('COMMENT_TWIKOO_CDN_URL')
const COMMENT_ARTALK_SERVER = siteConfig('COMMENT_ARTALK_SERVER')
const COMMENT_ARTALK_JS = siteConfig('COMMENT_ARTALK_JS')
const COMMENT_TIDIO_ID = siteConfig('COMMENT_TIDIO_ID')
const COMMENT_GITTER_ROOM = siteConfig('COMMENT_GITTER_ROOM')
const ANALYTICS_BAIDU_ID = siteConfig('ANALYTICS_BAIDU_ID')
const ANALYTICS_CNZZ_ID = siteConfig('ANALYTICS_CNZZ_ID')
const ANALYTICS_GOOGLE_ID = siteConfig('ANALYTICS_GOOGLE_ID')
const MATOMO_HOST_URL = siteConfig('MATOMO_HOST_URL')
const MATOMO_SITE_ID = siteConfig('MATOMO_SITE_ID')
const ANALYTICS_51LA_ID = siteConfig('ANALYTICS_51LA_ID')
const ANALYTICS_51LA_CK = siteConfig('ANALYTICS_51LA_CK')
const DIFY_CHATBOT_ENABLED = siteConfig('DIFY_CHATBOT_ENABLED')
const TIANLI_KEY = siteConfig('TianliGPT_KEY')
const GLOBAL_JS = siteConfig('GLOBAL_JS')
const CLARITY_ID = siteConfig('CLARITY_ID')
// 自定义样式css和js引入
if (isBrowser) {
// 初始化AOS动画
// 静态导入本地自定义样式
loadExternalResource('/css/custom.css', 'css')
loadExternalResource('/js/custom.js', 'js')
// 自动添加图片阴影
if (IMG_SHADOW) {
loadExternalResource('/css/img-shadow.css', 'css')
}
// 导入外部自定义脚本
if (CUSTOM_EXTERNAL_JS && CUSTOM_EXTERNAL_JS.length > 0) {
for (const url of CUSTOM_EXTERNAL_JS) {
loadExternalResource(url, 'js')
}
}
// 导入外部自定义样式
if (CUSTOM_EXTERNAL_CSS && CUSTOM_EXTERNAL_CSS.length > 0) {
for (const url of CUSTOM_EXTERNAL_CSS) {
loadExternalResource(url, 'css')
}
}
}
if (DISABLE_PLUGIN) {
return null
}
return <>
{/* 全局样式嵌入 */}
{THEME_SWITCH && }
{DEBUG && }
{ANALYTICS_ACKEE_TRACKER && }
{ANALYTICS_GOOGLE_ID && }
{ANALYTICS_VERCEL && }
{ANALYTICS_BUSUANZI_ENABLE && }
{ADSENSE_GOOGLE_ID && }
{FACEBOOK_APP_ID && FACEBOOK_PAGE_ID && }
{FIREWORKS && }
{SAKURA && }
{STARRY_SKY && }
{MUSIC_PLAYER && }
{NEST && }
{FLUTTERINGRIBBON && }
{COMMENT_TWIKOO_COUNT_ENABLE && }
{RIBBON && }
{DIFY_CHATBOT_ENABLED && }
{CUSTOM_RIGHT_CLICK_CONTEXT_MENU && }
{!CAN_COPY && }
{WEB_WHIZ_ENABLED && }
{AD_WWADS_BLOCK_DETECT && }
{TIANLI_KEY && }
{ANALYTICS_51LA_ID && ANALYTICS_51LA_CK && }
{ANALYTICS_51LA_ID && ANALYTICS_51LA_CK && (<>
{/* */}
>)}
{/* 注入JS脚本 */}
{GLOBAL_JS && }
{CHATBASE_ID && (<>
>)}
{CLARITY_ID && (<>
>)}
{COMMENT_DAO_VOICE_ID && (<>
{/* DaoVoice 反馈 */}
>)}
{AD_WWADS_ID && }
{COMMENT_TWIKOO_ENV_ID && }
{COMMENT_ARTALK_SERVER && }
{COMMENT_TIDIO_ID && }
{/* gitter聊天室 */}
{COMMENT_GITTER_ROOM && (<>
>)}
{/* 百度统计 */}
{ANALYTICS_BAIDU_ID && (
)}
{/* 站长统计 */}
{ANALYTICS_CNZZ_ID && (
)}
{/* 谷歌统计 */}
{ANALYTICS_GOOGLE_ID && (<>
>)}
{/* Matomo 统计 */}
{MATOMO_HOST_URL && MATOMO_SITE_ID && (
)}
>
}
export default ExternalPlugin