el.xwx.moe/pages/_app.tsx

64 lines
1.7 KiB
TypeScript
Raw Normal View History

2023-08-14 22:25:25 -05:00
import React, { useEffect } from "react";
2023-01-29 12:12:36 -06:00
import "@/styles/globals.css";
2023-02-06 11:59:23 -06:00
import { SessionProvider } from "next-auth/react";
2023-01-29 12:12:36 -06:00
import type { AppProps } from "next/app";
2023-03-28 02:31:50 -05:00
import Head from "next/head";
2023-04-30 15:54:40 -05:00
import AuthRedirect from "@/layouts/AuthRedirect";
import { Toaster } from "react-hot-toast";
2023-07-08 05:35:43 -05:00
import { Session } from "next-auth";
2023-08-02 12:53:55 -05:00
import { ThemeProvider } from "next-themes";
2023-01-22 15:39:35 -06:00
2023-07-08 05:35:43 -05:00
export default function App({
Component,
pageProps,
}: AppProps<{
session: Session;
}>) {
2023-08-15 20:29:38 -05:00
const defaultTheme: "light" | "dark" = "dark";
2023-08-14 22:25:25 -05:00
useEffect(() => {
2023-08-15 20:29:38 -05:00
if (!localStorage.getItem("theme"))
localStorage.setItem("theme", defaultTheme);
2023-08-14 22:25:25 -05:00
}, []);
2023-01-22 15:39:35 -06:00
return (
2023-02-06 11:59:23 -06:00
<SessionProvider session={pageProps.session}>
2023-03-28 02:31:50 -05:00
<Head>
<title>Linkwarden</title>
<meta name="viewport" content="width=device-width, initial-scale=1" />
<link
rel="apple-touch-icon"
sizes="180x180"
href="/apple-touch-icon.png"
/>
<link
rel="icon"
type="image/png"
sizes="32x32"
href="/favicon-32x32.png"
/>
<link
rel="icon"
type="image/png"
sizes="16x16"
href="/favicon-16x16.png"
/>
<link rel="manifest" href="/site.webmanifest" />
</Head>
2023-04-30 15:54:40 -05:00
<AuthRedirect>
2023-08-02 12:53:55 -05:00
<ThemeProvider attribute="class">
2023-08-14 22:25:25 -05:00
<Toaster
position="top-center"
reverseOrder={false}
toastOptions={{
className:
"border border-sky-100 dark:dark:border-neutral-700 dark:bg-neutral-900 dark:text-white",
}}
/>
2023-08-02 12:53:55 -05:00
<Component {...pageProps} />
</ThemeProvider>
2023-04-30 15:54:40 -05:00
</AuthRedirect>
2023-02-06 11:59:23 -06:00
</SessionProvider>
2023-01-22 15:39:35 -06:00
);
}