Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.

index.tsx 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  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 { useUserUpdate } from '../store/user-context';
  12. import { getStorage } from '../utils/helpers/storage';
  13. import { useEffect } from 'react';
  14. const Home: NextPage = ({ featuredProducts }) => {
  15. const { data: session } = useSession();
  16. const { addUser } = useUserUpdate();
  17. useEffect(() => {
  18. const userData = getStorage('user-data');
  19. if (session?.user && userData.length === 0) {
  20. addUser(session.user);
  21. }
  22. }, [session, addUser]);
  23. return (
  24. <>
  25. <Box sx={{ width: '100%', height: '100%' }}>
  26. <Head>
  27. <title>Coffee Shop</title>
  28. <meta name="description" content="Random data with pagination..." />
  29. </Head>
  30. <Hero />
  31. <FeaturedProductsList
  32. featuredProducts={featuredProducts}
  33. ></FeaturedProductsList>
  34. <Features />
  35. <CompanyInfo />
  36. </Box>
  37. </>
  38. )
  39. }
  40. export async function getStaticProps({ locale }: any) {
  41. try {
  42. const { message, featuredProducts } = await getFeaturedProducts();
  43. return {
  44. props: {
  45. ...(await serverSideTranslations(locale, ["home"])),
  46. message,
  47. featuredProducts,
  48. },
  49. };
  50. } catch (error) {
  51. return {
  52. props: {
  53. ...(await serverSideTranslations(locale, ['home'])),
  54. errorMessage: error,
  55. featuredProducts: [],
  56. },
  57. };
  58. }
  59. }
  60. export default Home