All checks were successful
Deploy with Docker Compose / deploy (push) Successful in 4m5s
- New workshop where each team member shares up to 5 GIFs with notes to express their weekly mood - Per-user week rating (1-5 stars) visible next to each member's section - Masonry-style grid with adjustable column count (3/4/5) toggle - Handwriting font (Caveat) for GIF notes - Full real-time collaboration via SSE - Clean migration (add_gif_mood_workshop) safe for production deploy - DB backup via cp before each migration in docker-entrypoint Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
56 lines
1.5 KiB
TypeScript
56 lines
1.5 KiB
TypeScript
import type { Metadata } from 'next';
|
|
import { Geist, Geist_Mono, Caveat } from 'next/font/google';
|
|
import './globals.css';
|
|
import { Providers } from '@/components/Providers';
|
|
import { Header } from '@/components/layout/Header';
|
|
|
|
const geistSans = Geist({
|
|
variable: '--font-geist-sans',
|
|
subsets: ['latin'],
|
|
});
|
|
|
|
const geistMono = Geist_Mono({
|
|
variable: '--font-geist-mono',
|
|
subsets: ['latin'],
|
|
});
|
|
|
|
const caveat = Caveat({
|
|
variable: '--font-caveat',
|
|
subsets: ['latin'],
|
|
});
|
|
|
|
export const metadata: Metadata = {
|
|
title: 'Workshop Manager',
|
|
description: "Application de gestion d'ateliers pour entretiens managériaux",
|
|
icons: {
|
|
icon: '/icon.svg',
|
|
apple: '/rocket_blue_gradient_large_logo.jpg',
|
|
},
|
|
};
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: Readonly<{
|
|
children: React.ReactNode;
|
|
}>) {
|
|
return (
|
|
<html lang="fr" suppressHydrationWarning>
|
|
<head>
|
|
<script
|
|
dangerouslySetInnerHTML={{
|
|
__html: `(function(){try{var t=localStorage.getItem('theme');if(t==='dark'||(!t&&window.matchMedia('(prefers-color-scheme:dark)').matches)){document.documentElement.classList.add('dark')}else{document.documentElement.classList.add('light')}}catch(e){}})()`,
|
|
}}
|
|
/>
|
|
</head>
|
|
<body className={`${geistSans.variable} ${geistMono.variable} ${caveat.variable} antialiased`}>
|
|
<Providers>
|
|
<div className="min-h-screen bg-background">
|
|
<Header />
|
|
{children}
|
|
</div>
|
|
</Providers>
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|