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

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. import type { NextPage } from 'next'
  2. import { useSession } from 'next-auth/react';
  3. import Head from 'next/head'
  4. import { Box } from '@mui/system';
  5. import Hero from '../components/hero/Hero';
  6. import { getFeaturedProducts } from '../requests/products/featuredProductsRequest';
  7. import { serverSideTranslations } from 'next-i18next/serverSideTranslations';
  8. import FeaturedProductsList from '../components/products/featured-products-list/FeaturedPorductsList';
  9. import Features from '../components/features/Features';
  10. import CompanyInfo from '../components/company-info/CompanyInfo';
  11. import { FeaturedProductsResponse } from '../requests/products/featuredProductsRequest';
  12. import { useUserUpdate } from '../store/user-context';
  13. import { getStorage } from '../utils/helpers/storage';
  14. import { useEffect } from 'react';
  15. const Home: NextPage<FeaturedProductsResponse> = ({ featuredProducts }) => {
  16. const { data: session } = useSession();
  17. const { addUser } = useUserUpdate();
  18. useEffect(() => {
  19. const userData = getStorage('user-data');
  20. if (session?.user && userData.length === 0) {
  21. addUser(session.user);
  22. }
  23. }, [session, addUser]);
  24. return (
  25. <>
  26. <Box sx={{ width: '100%', height: '100%' }}>
  27. <Head>
  28. <title>Coffee Shop</title>
  29. <meta name="description" content="Random data with pagination..." />
  30. </Head>
  31. <Hero />
  32. <FeaturedProductsList
  33. featuredProducts={featuredProducts}
  34. ></FeaturedProductsList>
  35. <Features />
  36. <CompanyInfo />
  37. </Box>
  38. </>
  39. )
  40. }
  41. export async function getStaticProps({ locale }: any) {
  42. try {
  43. const { message, featuredProducts } = await getFeaturedProducts();
  44. return {
  45. props: {
  46. ...(await serverSideTranslations(locale, ["home"])),
  47. message,
  48. featuredProducts,
  49. },
  50. };
  51. } catch (error) {
  52. return {
  53. props: {
  54. ...(await serverSideTranslations(locale, ['home'])),
  55. errorMessage: error,
  56. featuredProducts: [],
  57. },
  58. };
  59. }
  60. }
  61. export default Home