Next.js template
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.

_app.js 1.0KB

123456789101112131415161718192021222324252627282930313233343536373839
  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 { useState } from 'react';
  10. import '../styles/globals.css';
  11. function MyApp({ Component, pageProps: { session, ...pageProps } }) {
  12. const [queryClient] = useState(() => new QueryClient());
  13. return (
  14. <QueryClientProvider client={queryClient}>
  15. <Hydrate state={pageProps.dehydratedState}>
  16. <SessionProvider session={session}>
  17. <Component {...pageProps} />
  18. </SessionProvider>
  19. <ReactQueryDevtools initialIsOpen={false} />
  20. </Hydrate>
  21. </QueryClientProvider>
  22. );
  23. }
  24. MyApp.getInitialProps = async ({ Component, ctx }) => {
  25. let pageProps = {};
  26. if (Component.getInitialProps) {
  27. pageProps = await Component.getInitialProps(ctx);
  28. }
  29. return {
  30. pageProps,
  31. };
  32. };
  33. export default appWithTranslation(MyApp);