2

I don't know why my getStaticProps() does not return anything. I hopped through many articles but can't find a solution.

The console.log gives me undefined on page.js and categories.jsx both.

I am using app router.

app/page.js

import Landing from '@/components/Landing'
import Categories from '@/components/Categories'


export const getServerSideProps =  async () => {
  const res = await fetch('https://fakestoreapi.com/products/categories');
  const categories = await res.json();
  
  return {
    props: {
      categories,
    },
  }
}


export default function Home({ categories }) {
  console.log("cat from home", categories)

  return (
    <div className='home'>
      <Landing />
      <Categories categories={categories} />
      
    </div>
  )
}

@components/categories

"use client"
import { motion } from "framer-motion"
import Link from "next/link"
import Image from 'next/image'

const Categories = ({ categories }) => {
    console.log("cat from cat", categories)
    
    const categoriesVariants = {
        visible: { opacity: 1, scale: 1, transition: { duration: .5 } },
        hidden: { opacity: 0, scale: 0.8 },
    }

    return (
        <section className="categories py-20 ">
            <h2 className='text-3xl font-bold capitalize mb-14'>Shop Our top categories</h2>
            <div className="categories-cards-container flex flex-wrap justify-center gap-10 w-full">
                {
                    categories?.map((cat, idx) => {
                        return (
                            <motion.div key={idx} initial="hidden" whileInView="visible" viewport={{ once: true }} variants={categoriesVariants} >
                                <Link href={`/products/category/${cat}`} className='category-card block relative group overflow-hidden  min-w-[200px] w-[250px] h-[400px] sm:w-[80%] xs:w-full   rounded-xl cursor-pointer'>
                                    <Image className='absolute -z-10 top-0 left-0 w-full h-full object-cover group-hover:scale-[1.2] transition duration-500 brightness-50' src={`https://source.unsplash.com/random/180x320/?${cat}`} alt={`${cat}`} width="200" height="300" />
                                    <h3 className="absolute top-[50%] translate-y-[-50%] left-0 w-full text-center text-2xl category-title capitalize font-bold text-gray-100 group-hover:opacity-100 group-hover:-translate-y-6 opacity-75 transition duration-500">{cat}</h3>
                                    <p className="browse -z-10 flex items-center gap-1 justify-center capitalize absolute bottom-[0%] left-0 w-full h-full  py-5 bg-[rgba(0,0,0,.3)] text-green-800  opacity-0  group-hover:opacity-100  text-center transition duration-500  text-sm">
                                        {/* {cat} <span> <AiOutlineArrowRight /> </span> */}
                                    </p>
                                </Link>
                            </motion.div>
                        )
                    })}
            </div>
        </section>
    )
}

export default Categories
Sebak Thapa
  • 171
  • 2
  • 7

0 Answers0