59 lines
1.6 KiB
TypeScript
59 lines
1.6 KiB
TypeScript
import "~/styles/globals.css";
|
|
|
|
import { type Metadata, type Viewport } from "next";
|
|
import { Instrument_Sans } from "next/font/google";
|
|
|
|
import { UmamiAnalytics } from "~/components/umami-analytics";
|
|
|
|
const instrumentSans = Instrument_Sans({
|
|
subsets: ["latin"],
|
|
variable: "--font-instrument-sans",
|
|
});
|
|
|
|
export const metadata: Metadata = {
|
|
title: {
|
|
default: "Medscribe | Carry the context when care gets complicated",
|
|
template: "Medscribe | %s",
|
|
},
|
|
description:
|
|
"A private, patient-controlled companion for keeping visits, medications, and critical context together.",
|
|
applicationName: "Medscribe",
|
|
icons: {
|
|
icon: [
|
|
{ url: "/favicon.ico", sizes: "any" },
|
|
{ url: "/favicon.svg", type: "image/svg+xml" },
|
|
{ url: "/favicon-32x32.png", sizes: "32x32", type: "image/png" },
|
|
{ url: "/favicon-16x16.png", sizes: "16x16", type: "image/png" },
|
|
],
|
|
apple: [
|
|
{ url: "/apple-touch-icon.png", sizes: "180x180", type: "image/png" },
|
|
],
|
|
},
|
|
openGraph: {
|
|
title: "Medscribe",
|
|
description:
|
|
"Carry the context when care gets complicated. Private, patient-controlled health context when you need it.",
|
|
type: "website",
|
|
},
|
|
};
|
|
|
|
export const viewport: Viewport = {
|
|
themeColor: [
|
|
{ media: "(prefers-color-scheme: light)", color: "#f4f9f7" },
|
|
{ media: "(prefers-color-scheme: dark)", color: "#071415" },
|
|
],
|
|
};
|
|
|
|
export default function RootLayout({
|
|
children,
|
|
}: Readonly<{ children: React.ReactNode }>) {
|
|
return (
|
|
<html lang="en" className={instrumentSans.variable}>
|
|
<body className="min-h-screen">
|
|
{children}
|
|
<UmamiAnalytics />
|
|
</body>
|
|
</html>
|
|
);
|
|
}
|