mirror of
https://github.com/supabase/supabase.git
synced 2026-10-06 18:05:11 +03:00
wip <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit # Release Notes * **New Features** * Added a new Learn application offering foundational Supabase courses with interactive documentation * Courses include Architecture, Authentication, Data Fundamentals, Security, Storage, Realtime, and Edge Functions * Chapter tracking and progress indicators for course completions * Responsive sidebar navigation with search/command menu * Theme switching support (light, dark, classic dark modes) * Mobile-friendly course interface <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Alan Daniel <stylesshjs@gmail.com> Co-authored-by: Claude Sonnet 4.5 <noreply@anthropic.com>
61 lines
1.7 KiB
TypeScript
61 lines
1.7 KiB
TypeScript
import type { Metadata } from 'next'
|
|
|
|
import '@/styles/globals.css'
|
|
import { API_URL } from '@/lib/constants'
|
|
import { FeatureFlagProvider, TelemetryTagManager } from 'common'
|
|
import { genFaviconData } from 'common/MetaFavicons/app-router'
|
|
import { Inter } from 'next/font/google'
|
|
import { ThemeProvider } from './Providers'
|
|
import { SonnerToaster } from './SonnerToast'
|
|
|
|
const inter = Inter({ subsets: ['latin'] })
|
|
|
|
const BASE_PATH = process.env.NEXT_PUBLIC_BASE_PATH ?? ''
|
|
|
|
export const metadata: Metadata = {
|
|
applicationName: 'Learn Supabase',
|
|
title: 'Learn Supabase',
|
|
description: 'Learn Supabase.',
|
|
metadataBase: new URL('https://supabase.com/learn'),
|
|
icons: genFaviconData(BASE_PATH),
|
|
openGraph: {
|
|
type: 'article',
|
|
authors: 'Supabase',
|
|
url: `${BASE_PATH}`,
|
|
images: `${BASE_PATH}/img/supabase-og-image.png`,
|
|
publishedTime: new Date().toISOString(),
|
|
modifiedTime: new Date().toISOString(),
|
|
},
|
|
twitter: {
|
|
card: 'summary_large_image',
|
|
site: '@supabase',
|
|
creator: '@supabase',
|
|
images: `${BASE_PATH}/img/supabase-og-image.png`,
|
|
},
|
|
}
|
|
|
|
interface RootLayoutProps {
|
|
children: React.ReactNode
|
|
}
|
|
|
|
export default async function Layout({ children }: RootLayoutProps) {
|
|
return (
|
|
<html lang="en" suppressHydrationWarning>
|
|
<head />
|
|
<body className={`${inter.className} antialiased`}>
|
|
<TelemetryTagManager />
|
|
<FeatureFlagProvider API_URL={API_URL}>
|
|
<ThemeProvider
|
|
themes={['dark', 'light', 'classic-dark']}
|
|
defaultTheme="system"
|
|
enableSystem
|
|
>
|
|
{children}
|
|
<SonnerToaster />
|
|
</ThemeProvider>
|
|
</FeatureFlagProvider>
|
|
</body>
|
|
</html>
|
|
)
|
|
}
|