Files
twenty_crm/packages/twenty-website/src/app/(public)/layout.tsx
Baptiste Devessier 2c465bd42e Integrate Keystatic to edit twenty.com content (#10709)
This PR introduces Keystatic to let us edit twenty.com's content with a
CMS. For now, we'll focus on creating release notes through Keystatic as
it uses quite simple Markdown. Other types of content will need some
refactoring to work with Keystatic.


https://github.com/user-attachments/assets/e9f85bbf-daff-4b41-bc97-d1baf63758b2

---------

Co-authored-by: Félix Malfait <felix@twenty.com>
2025-03-07 07:59:06 +01:00

54 lines
1.3 KiB
TypeScript

import { Metadata } from 'next';
import { PublicEnvScript } from 'next-runtime-env';
import { Gabarito, Inter } from 'next/font/google';
import { AppHeader } from '@/app/_components/ui/layout/header';
import { FooterDesktop } from '../_components/ui/layout/FooterDesktop';
import EmotionRootStyleRegistry from '../emotion-root-style-registry';
import './layout.css';
export const dynamic = 'force-dynamic';
export const metadata: Metadata = {
title: 'Twenty.com',
description: 'Open Source CRM',
icons: '/images/core/logo.svg',
};
const gabarito = Gabarito({
weight: ['400', '500', '600', '700'],
subsets: ['latin'],
display: 'swap',
adjustFontFallback: false,
variable: '--font-gabarito',
});
const inter = Inter({
weight: ['400', '500', '600', '700'],
subsets: ['latin'],
display: 'swap',
adjustFontFallback: false,
variable: '--font-inter',
});
export default function RootLayout({
children,
}: {
children: React.ReactNode;
}) {
return (
<html lang="en" className={`${gabarito.variable} ${inter.variable}`}>
<body>
<PublicEnvScript />
<EmotionRootStyleRegistry>
<AppHeader />
<div className="container">{children}</div>
<FooterDesktop />
</EmotionRootStyleRegistry>
</body>
</html>
);
}