_app.jsx 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import Head from 'next/head'
  2. import Script from 'next/script'
  3. import { Layout } from '@/components/Layout'
  4. import { DialectProvider } from '@/components/DialectContext'
  5. import { usePage } from '@/shared/usePage'
  6. import '@/styles/tailwind.css'
  7. import 'focus-visible'
  8. import 'reactflow/dist/base.css'
  9. import '@/styles/extra.css'
  10. // Add Prism components.
  11. import { Prism } from 'prism-react-renderer'
  12. ;(typeof global !== 'undefined' ? global : window).Prism = Prism
  13. require('prismjs/components/prism-rust')
  14. export default function App({ Component, pageProps }) {
  15. const page = usePage(pageProps)
  16. return (
  17. <>
  18. <Head>
  19. <title>{page.metaTitle}</title>
  20. <meta property="og:title" content={page.metaTitle} />
  21. <meta name="twitter:title" content={page.metaTitle} />
  22. <meta name="twitter:card" content="summary_large_image" />
  23. <meta property="twitter:domain" content="developers.metaplex.com" />
  24. <meta
  25. property="og:image"
  26. content="https://developers.metaplex.com/assets/social/dev-hub-preview.jpg"
  27. />
  28. <meta
  29. name="twitter:image"
  30. content="https://developers.metaplex.com/assets/social/dev-hub-preview.jpg"
  31. />
  32. {page.description && (
  33. <>
  34. <meta name="description" content={page.description} />
  35. <meta property="og:description" content={page.description} />
  36. <meta name="twitter:description" content={page.description} />
  37. </>
  38. )}
  39. </Head>
  40. <DialectProvider>
  41. <Layout page={page}>
  42. <Component {...pageProps} />
  43. </Layout>
  44. </DialectProvider>
  45. {/* Google Analytics. */}
  46. <Script src="https://www.googletagmanager.com/gtag/js?id=G-PJMQZF1F4X" />
  47. <Script id="google-analytics">
  48. {`
  49. window.dataLayer = window.dataLayer || [];
  50. function gtag(){dataLayer.push(arguments);}
  51. gtag('js', new Date());
  52. gtag('config', 'G-PJMQZF1F4X');
  53. `}
  54. </Script>
  55. </>
  56. )
  57. }