PHP Classes

File: frontend/src/components/Routes/Shop/Collections/index.tsx

Recommend this page to a friend!
  Classes of carlos carvalho   yrprey PHP application   frontend/src/components/Routes/Shop/Collections/index.tsx   Download  
File: frontend/src/components/Routes/Shop/Collections/index.tsx
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: yrprey PHP application
Web app to learn about OWASP API vulnerabilities
Author: By
Last change:
Date: 3 months ago
Size: 1,989 bytes
 

Contents

Class file image Download
import { motion } from "framer-motion"; import CardShop from "@/components/ShopCard"; import Footer from "@/components/Footer"; import Header from "@/components/Header"; import { StyledCollectionsSection } from "./style"; import { useEffect, useState } from "react"; import axios, { AxiosResponse } from "axios"; import { Context } from "@/context/context"; import { useContext } from "react"; interface ColorData { [key: string]: Product[]; } interface Product { id: any; title_image: string; image: string; title: string; name: string; value: string; } const Collections = () => { const { router } = useContext(Context); const { id } = router.query; const [productsList, setProductsList] = useState<ColorData>({}); useEffect(() => { const fetchProductData = async () => { try { const response: AxiosResponse<ColorData> = await axios.get( `${process.env.NEXT_PUBLIC_API}/cards`, ); if (response.data) { setProductsList(response.data); } } catch (error) { error; } }; fetchProductData(); }, []); const renderProducts = (productsList: Product[]) => { return productsList.map((product: Product, index: number) => ( <CardShop id={product.id} key={index} title_image={product.title_image} image={`/${product.image}.webp`} title={product.title} name={product.name} value={product.value} /> )); }; const products = productsList[id as string]; return ( <motion.div initial={{ opacity: 0.3 }} animate={{ opacity: 1 }} exit={{ opacity: 0 }} transition={{ duration: 0.5 }} > <Header /> <StyledCollectionsSection> <div className="container"> <ul className="content">{products && renderProducts(products)}</ul> </div> </StyledCollectionsSection> <Footer /> </motion.div> ); }; export default Collections;