0% found this document useful (0 votes)
43 views7 pages

Practical:-8 AIM:-: Name-Snehit Garg Section-A1 ROLLNO-11212506

sg

Uploaded by

Aditya Raj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
43 views7 pages

Practical:-8 AIM:-: Name-Snehit Garg Section-A1 ROLLNO-11212506

sg

Uploaded by

Aditya Raj
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd

NAME-SNEHIT GARG SECTION-A1 ROLLNO-11212506

PRACTICAL:-8
AIM:- create a online shopping page with reat component that will consist in a naviga on
bar at the top of the page , a main sec on in the middle that will contain all the shopping
items informa on and a footer at the bo om of the page with a li le informa on about the
page, like social network icons and the copyright informa on.

//App.js
import './App.css';

import Navbar from './Components/Navbar';

import SearchBar from './Components/SearchBar';

import { useState, useEffect } from 'react';

import {Route,Routes} from "react-router-dom";

import Home from './Components/Home';

import About from "./Components/About";

import Contact from './Components/Contactus';

import Crads from './Components/cards'

import Cards from './Components/cards';

func on App() {

const url = "h ps://fakestoreapi.com/products";

const [products, setProducts] = useState([]);

async func on getProducts() {

try {

const response = await fetch(url);

const parsedData = await response.json();

console.log(Data);

setProducts(parsedData);

} catch (error) {

console.log(error)

useEffect(() => {

getProducts();

},[])
NAME-SNEHIT GARG SECTION-A1 ROLLNO-11212506

return (

<div className=" h-screen w-screen overflow-x-hidden bg-[#C1E7F8]">

<Navbar />

<SearchBar></SearchBar>

<div><Routes>

<Route path="/" element={loader?<Spinner/>:<Cards products={Data}/>} ></Route>

<Route path='/contact' element={<Contact></Contact>}></Route>

<Route path="/home" element={<Home></Home>}></Route>

<Route path="/about" element={<About></About>}></Route>

<Route path="*" element={<h1>Page Not Found 404</h1>}></Route>

</Routes></div>

</div>

);

export default App;

//index.js

import React from 'react';

import { BrowserRouter } from 'react-router-dom';

import ReactDOM from 'react-dom/client';

import './index.css';

import App from './App';

const root = ReactDOM.createRoot(document.getElementById('root'));

root.render(

<BrowserRouter >

<App />

</BrowserRouter>

//searchbar.js

import React from 'react'

import { useState } from 'react';

func on SearchBar() {

const [Text, setText] = useState("")


NAME-SNEHIT GARG SECTION-A1 ROLLNO-11212506

const handleSearchChange = (e) => {

e.preventDefault();

setText(e.target.value);

console.log(e.target.value);

return (

<div className='flex items-center jus fy-center'>

<input onChange={handleSearchChange}

type="text" placeholder='Search for your Product'

className=' w-[800px] h-10 rounded-full bg-gray-900 mx-auto border-white

border-color:inherit mt-10 mb-4 text-2xl placeholder:text-center caret-whit text-white text-center '

value={Text}

/>

</div>

export default SearchBar

//Navbar.js

import React from 'react'

import { NavLink } from "react-router-dom";

func on Navbar() {

return(

<div className="flex flex-row jus fy-around bg-slate-700 my-10 rounded-full items-center py-4 text-black
mx-auto ">

<div className=''> <NavLink to="/">

<div className="ml-5">

<img src="../logo.png" className="h-10 rounded-full w-20" />

</div>

</NavLink></div>

<div >

<NavLink to="/home">

<p>Home</p>

</NavLink>
NAME-SNEHIT GARG SECTION-A1 ROLLNO-11212506

</div>

<div >

<NavLink to="/about">

<p>About</p>

</NavLink>

</div>

<div >

<NavLink to="/contact">

<p>contact Us</p>

</NavLink>

</div

</div>);

//Home.js

export default Navbar

import React from 'react

func on Home() {

return (

<div>Home</div>

export default Home

//contactus.js

import React from 'react

func on Contactus() {

return (

<div>Contact Us</div>

export default Contactus

//Cards.js

import Card from "./card";


NAME-SNEHIT GARG SECTION-A1 ROLLNO-11212506

func on Cards({products,filterdata}) {

// console.log("products=>",products);

// const [ tle,se tle]=useState("Flipkart");

console.log(products);

return (

<div>

<div className=' flex jus fy-around text-gray-800 my-2 font font-semibold text-4xl'>

<div className=''>Flipkart</div>

<div className='ml-10'>Amazon</div>

<div className=' ml-20'> Gem</div>

<div className=' pl-10'>India Mart</div>

</div>

<div className=''>

products.map(product=>

return (

<div className='flex'>

<Card product={product} key={product.id} tle={"Flipkart"}></Card>

<Card product={product} key={product.id} tle={"Amazon"} ></Card>

<Card product={product} key={product.id} tle={"Gem"} ></Card>

<Card product={product} key={product.id} tle={"India_Mart"} ></Card>

</div>

})

</div>

</div>

//Card.js

import React, { useEffect, useState } from 'react'

import { NavLink } from "react-router-dom"


NAME-SNEHIT GARG SECTION-A1 ROLLNO-11212506

import { useNavigate } from 'react-router-dom';

import { BsCurrencyDollar } from "react-icons/bs";

func on Card({product, tle}) {

const navigate = useNavigate();

console.log("product=>",product);

console.log(product.thumbnail);

return (

<div className=' place rela ve bg-[#FFF] opacity-80 text-black '>

<img
src={ tle==="Amazon"?(product.thumbnail_amazon):( tle==="Flipkart"?(product.thumbnail_flipkart):( tle===
"Gem"?(product.thumbnail_gem):(! tle==="India_Mart"?(product.thumbnail):(product.thumbnail_indiamart))
))}

className=" w-[360px] aspect-[1/1] object-cover "></img>

<h1 className="text-4xl mt-2 flex text-black


">{ tle==="Amazon"?(product.price_amazon):( tle==="Flipkart"?(product.price_flipkart):( tle==="Gem"?(pro
duct.price_gem):( tle==="India_Mart"?(product.price_indiamart):(product.price))))}

<span className="mt-1" ><BsCurrencyDollar/> </span></h1>

<h2 className=' text-black text-lg mt-2 leading-7 mr-24' >

<span className=' text-black font-bold'>Title:</span>

<br/>

{product. tle}

</h2>

{/* <p className=' text-gray-300'><span className=' font-bold text-white flex'>Title :</span>{product. tle
}</p> */}

<p className=' text-black'><span className=' font-bold text-black flex'>Descrip on


:</span>{product.descrip on}</p>

{/* <p><span className=' text-white font-bold'>Discount :</span> {product.discountPercentage}</p>

<p><span className=' text-white font-bold'>Stock : </span>{product.stock}</p> */}

{/* <p>{product.thumbnail}</p> */}

{/* <img scr={product.thumbnail}></img> */}

<div className=' flex items-end' onClick={()=>

window.loca on.href= tle==="Amazon"?(product.url_amazon):(product.url_flipkart);

}}>

<bu on className=" px-7 mb-4 mt-7 bg-black z-10 transi on-all


NAME-SNEHIT GARG SECTION-A1 ROLLNO-11212506

dura on-200 py-3 hover:bg-black text-white hover:border rounded-3xl opacity-100 border-black">View on


{ tle}</bu on></div>

</div>

export default Card

export default Cards

OUTPUT:-

You might also like