Next.js template
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import {
  2. Hydrate,
  3. QueryClient,
  4. QueryClientProvider,
  5. } from '@tanstack/react-query';
  6. import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
  7. import { SessionProvider } from 'next-auth/react';
  8. import { appWithTranslation } from 'next-i18next';
  9. import Head from 'next/head';
  10. import { useState } from 'react';
  11. import Layout from '../components/layout/base-layout/Layout';
  12. import '../styles/globals.css';
  13. function MyApp({ Component, pageProps: { session, ...pageProps } }) {
  14. const [queryClient] = useState(() => new QueryClient());
  15. return (
  16. <QueryClientProvider client={queryClient}>
  17. <Hydrate state={pageProps.dehydratedState}>
  18. <SessionProvider session={session}>
  19. <Layout>
  20. <Head>
  21. <meta
  22. name="viewport"
  23. content="width=device-width, initial-scale=1"
  24. />
  25. </Head>
  26. <Component {...pageProps} />
  27. </Layout>
  28. </SessionProvider>
  29. <ReactQueryDevtools initialIsOpen={false} />
  30. </Hydrate>
  31. </QueryClientProvider>
  32. );
  33. }
  34. MyApp.getInitialProps = async ({ Component, ctx }) => {
  35. let pageProps = {};
  36. if (Component.getInitialProps) {
  37. pageProps = await Component.getInitialProps(ctx);
  38. }
  39. return {
  40. pageProps,
  41. };
  42. };
  43. export default appWithTranslation(MyApp);