website/routes/_app.tsx

63 lines
1.6 KiB
TypeScript

import { asset, Partial } from 'fresh/runtime'
import { type PageProps } from 'fresh'
import { Footer } from ':components/Footer.tsx'
import { Header } from ':components/Header.tsx'
import IsOnline from ':islands/IsOnline.tsx'
import RegisterServiceWorker from ':islands/RegisterServiceWorker.tsx'
import { SmartStylesheet } from ':plugins/SmartStylesheet.tsx'
export default function App(
{ Component, data, url }: PageProps<{ title?: string } | undefined>,
) {
return (
<html lang='fr'>
<head>
<meta charset='utf-8' />
<meta
name='viewport'
content='width=device-width, initial-scale=1.0'
/>
<meta
name='theme-color'
media='(prefers-color-scheme: light)'
content='#82c91e'
/>
<meta
name='theme-color'
media='(prefers-color-scheme: dark)'
content='#3d210d'
/>
<meta
name='description'
content="Fablab Cohabit - L'atelier participatif libre et open source"
/>
<link
rel='manifest'
href={asset('manifest.json')}
crossorigin='use-credentials'
/>
<link
rel='shortcut icon'
href={asset('/assets/favicon.ico')}
type='image/x-icon'
/>
<SmartStylesheet pathname={url.pathname} />
<link rel='stylesheet' href={asset('/main.css')} />
<link rel='stylesheet' href={asset('/imports/markdown_css')} />
<title>{data?.title ?? 'Fablab Coh@bit'}</title>
</head>
<body>
<Header />
<IsOnline offline='Vous êtes hors ligne / Serveur inaccessible' />
<main f-client-nav>
<Partial name='main'>
<Component />
</Partial>
</main>
<RegisterServiceWorker />
<Footer />
</body>
</html>
)
}