mirror of
https://github.com/parsis-foundation/parsis.foundation.git
synced 2026-10-30 20:47:22 +00:00
76 lines
3.0 KiB
TypeScript
76 lines
3.0 KiB
TypeScript
import type { Metadata } from 'next';
|
|
import { Geist, Geist_Mono } from 'next/font/google';
|
|
import './globals.css';
|
|
import { SiteHeader } from '@/components/site-header';
|
|
import { SiteFooter } from '@/components/site-footer';
|
|
import { I18nProvider } from '@/lib/i18n/context';
|
|
import { site } from '@/lib/site-data';
|
|
|
|
const geistSans = Geist({
|
|
variable: '--font-geist-sans',
|
|
subsets: ['latin'],
|
|
});
|
|
|
|
const geistMono = Geist_Mono({
|
|
variable: '--font-geist-mono',
|
|
subsets: ['latin'],
|
|
});
|
|
|
|
export const metadata: Metadata = {
|
|
title: site.title,
|
|
description: site.description,
|
|
metadataBase: new URL(site.url),
|
|
openGraph: {
|
|
title: site.title,
|
|
description: site.description,
|
|
url: site.url,
|
|
siteName: site.title,
|
|
images: [
|
|
{
|
|
url: site.image,
|
|
width: 1200,
|
|
height: 1200,
|
|
alt: site.title,
|
|
},
|
|
],
|
|
locale: 'en_US',
|
|
type: 'website',
|
|
},
|
|
twitter: {
|
|
card: 'summary_large_image',
|
|
title: site.title,
|
|
description: site.description,
|
|
images: [site.image],
|
|
},
|
|
icons: {
|
|
icon: '/images/official-seal.png',
|
|
apple: '/images/official-seal.png',
|
|
},
|
|
};
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: {
|
|
children: React.ReactNode;
|
|
}) {
|
|
return (
|
|
<html lang="en" className="dark" suppressHydrationWarning>
|
|
<head>
|
|
{/* Hanzo Insights — behavioral analytics */}
|
|
<script
|
|
dangerouslySetInnerHTML={{
|
|
__html: `!function(t,e){var o,n,p,r;e.__SV||(window.hi=e,e._i=[],e.init=function(i,s,a){function g(t,e){var o=e.split(".");2==o.length&&(t=t[o[0]],e=o[1]),t[e]=function(){t.push([e].concat(Array.prototype.slice.call(arguments,0)))}}(p=t.createElement("script")).type="text/javascript",p.crossOrigin="anonymous",p.async=!0,p.src=s.api_host+"/static/array.js",(r=t.getElementsByTagName("script")[0]).parentNode.insertBefore(p,r);var u=e;for(void 0!==a?u=e[a]=[]:a="hi",u.people=u.people||[],u.toString=function(t){var e="hi";return"hi"!==a&&(e+="."+a),t||(e+=" (stub)"),e},u.people.toString=function(){return u.toString(1)+".people (stub)"},o="init capture captureException identify alias people.set people.set_once set_config register register_once unregister opt_out_capturing has_opted_out_capturing opt_in_capturing reset isFeatureEnabled onFeatureFlags getFeatureFlag getFeatureFlagPayload reloadFeatureFlags group updateEarlyAccessFeatureEnrollment getEarlyAccessFeatures on getActiveMatchingSurveys getSurveys getNextSurveyStep onSessionId setPersonProperties".split(" "),n=0;n<o.length;n++)g(u,o[n]);e._i.push([i,s,a])},e.__SV=1)}(document,window.hi||[]);hi.init('hi_47d0de95d23fa13e8b4569d79867ed16',{api_host:'https://insights.hanzo.ai',person_profiles:'identified_only'});hi.register({app:'parsis-foundation',org:'pars'})`,
|
|
}}
|
|
/>
|
|
</head>
|
|
<body className={`${geistSans.variable} ${geistMono.variable} font-sans antialiased`}>
|
|
<I18nProvider>
|
|
<SiteHeader />
|
|
{children}
|
|
<SiteFooter />
|
|
</I18nProvider>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|