import { useEffect, useState } from 'react'; import type { AppProps } from 'next/app'; import Script from 'next/script'; import Head from 'next/head'; import { ChakraProvider, ColorModeScript } from '@chakra-ui/react'; import Layout from '@/components/Layout'; import { theme } from '@/constants/theme'; import { QueryClient, QueryClientProvider } from '@tanstack/react-query'; import NProgress from 'nprogress'; //nprogress module import Router from 'next/router'; import 'nprogress/nprogress.css'; import '@/styles/reset.scss'; import { clientInitData, feConfigs } from '@/store/static'; import { NextPageContext } from 'next'; import { useGlobalStore } from '@/store/global'; //Binding events. Router.events.on('routeChangeStart', () => NProgress.start()); Router.events.on('routeChangeComplete', () => NProgress.done()); Router.events.on('routeChangeError', () => NProgress.done()); // Create a client const queryClient = new QueryClient({ defaultOptions: { queries: { refetchOnWindowFocus: false, retry: false, cacheTime: 0 } } }); function App({ Component, pageProps, isPc }: AppProps & { isPc?: boolean; response: any }) { const [googleClientVerKey, setGoogleVerKey] = useState(); const [baiduTongji, setBaiduTongji] = useState(); const { initIsPc } = useGlobalStore(); if (isPc !== undefined) { initIsPc(isPc); } useEffect(() => { (async () => { const { systemEnv: { googleClientVerKey, baiduTongji } } = await clientInitData(); setGoogleVerKey(googleClientVerKey); setBaiduTongji(baiduTongji); })(); }, []); return ( <> {feConfigs?.systemTitle || 'AI知识库'} {baiduTongji && } {googleClientVerKey && ( <> )} ); } App.getInitialProps = async ({ ctx }: { ctx: NextPageContext }) => { const reg = /mobile/gi; const isPc = !reg.test(ctx.req?.headers?.['user-agent'] || ''); return { isPc }; }; export default App;