Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

3 лет назад
3 лет назад
3 лет назад
3 лет назад
3 лет назад
3 лет назад
3 лет назад
3 лет назад
3 лет назад
3 лет назад
3 лет назад
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. import { ThemeProvider } from '@mui/material/styles';
  2. import {
  3. Hydrate,
  4. QueryClient,
  5. QueryClientProvider,
  6. } from '@tanstack/react-query';
  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 CircularIndeterminate from '../components/loader/route-loader/CircularIndeterminate';
  13. import StorageProvider from '../store/cart-context';
  14. import CheckoutProvider from '../store/checkout-context';
  15. import UserProvider from '../store/user-context';
  16. import '../styles/globals.css';
  17. import theme from '../styles/muiTheme';
  18. const Providers = ({ components, children }) => (
  19. <>
  20. {components.reduceRight(
  21. (acc, Comp) => (
  22. <Comp>{acc}</Comp>
  23. ),
  24. children
  25. )}
  26. </>
  27. );
  28. function MyApp({ Component, pageProps: { session, ...pageProps } }) {
  29. const [queryClient] = useState(() => new QueryClient());
  30. return (
  31. <QueryClientProvider client={queryClient}>
  32. <Hydrate state={pageProps.dehydratedState}>
  33. <SessionProvider session={session}>
  34. <ThemeProvider theme={theme}>
  35. <Providers
  36. components={[CheckoutProvider, StorageProvider, UserProvider]}
  37. >
  38. <Layout>
  39. <Head>
  40. <title>Coffee Shop</title>
  41. <meta name="description" content="NextJS template" />
  42. <meta
  43. name="viewport"
  44. content="width=device-width, initial-scale=1"
  45. />
  46. </Head>
  47. <CircularIndeterminate />
  48. <Component {...pageProps} />
  49. </Layout>
  50. </Providers>
  51. </ThemeProvider>
  52. </SessionProvider>
  53. </Hydrate>
  54. </QueryClientProvider>
  55. );
  56. }
  57. MyApp.getInitialProps = async ({ Component, ctx }) => {
  58. let pageProps = {};
  59. if (Component.getInitialProps) {
  60. pageProps = await Component.getInitialProps(ctx);
  61. }
  62. return {
  63. pageProps,
  64. };
  65. };
  66. export default appWithTranslation(MyApp);