You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
41 lines
1.1 KiB
41 lines
1.1 KiB
import SEO from "../next-seo.config";
|
|
|
|
import { DefaultSeo } from "next-seo";
|
|
import type { AppProps } from "next/app";
|
|
|
|
import { useMemo } from "react";
|
|
|
|
import { QueryClient, QueryClientProvider } from "react-query";
|
|
import { ReactQueryDevtools } from "react-query/devtools";
|
|
|
|
import CssBaseline from "@mui/material/CssBaseline";
|
|
import { ThemeProvider } from "@mui/material/styles";
|
|
import useMediaQuery from "@mui/material/useMediaQuery";
|
|
|
|
import createTheme from "@src/theme";
|
|
|
|
import "@styles/globals.sass";
|
|
|
|
const queryClient = new QueryClient();
|
|
|
|
const App = ({ Component, pageProps }: AppProps) => {
|
|
const prefersDarkMode = useMediaQuery("(prefers-color-scheme: dark)");
|
|
|
|
const theme = useMemo(() => createTheme(prefersDarkMode), [prefersDarkMode]);
|
|
|
|
return (
|
|
<QueryClientProvider client={queryClient}>
|
|
{process.env.NODE_ENV != "production" && (
|
|
<ReactQueryDevtools initialIsOpen={true} />
|
|
)}
|
|
<ThemeProvider theme={theme}>
|
|
<CssBaseline />
|
|
<DefaultSeo {...SEO} />
|
|
<Component {...pageProps} />
|
|
</ThemeProvider>
|
|
</QueryClientProvider>
|
|
);
|
|
};
|
|
|
|
export default App;
|