Skip to content

Commit e162db1

Browse files
authored
Merge pull request #2 from Jay-Topher/develop
Develop
2 parents a6ea40e + 0edcb18 commit e162db1

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

63 files changed

+780
-39
lines changed

debug.log

+1
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
[1025/142900.327:WARNING:minidump_to_upload_parameters.cc(36)] duplicate key guid, discarding value e580bed1-34e2-41e2-8c81-7de2090ee2ea

package-lock.json

+110
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
"node-sass": "^4.12.0",
77
"react": "^16.10.2",
88
"react-dom": "^16.10.2",
9+
"react-icons": "^3.7.0",
10+
"react-router-dom": "^5.1.2",
911
"react-scripts": "3.2.0"
1012
},
1113
"scripts": {

src/App.js

+2-6
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,12 @@
11
import React from 'react';
2-
import Header from './Components/Header/Header'
3-
import Carousel from './Components/Carousel/Carousel'
4-
import BridgeComponent from './Components/Bridge/BridgeComponent'
2+
import Homepage from './Views/Homepage/Homepage'
53

64
import './App.css';
75

86
function App() {
97
return (
108
<div className="App">
11-
<Header />
12-
<Carousel />
13-
<BridgeComponent />
9+
<Homepage />
1410

1511
</div>
1612
);

src/Components/Header/BottomHead.js src/Commons/Header/BottomHead.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ function BottomHead() {
1313
</h1>
1414
<nav className='navlink'>
1515
{navLinks.map(item => (
16-
<a href='/' className='mx-2 navlink--items'>{item}</a>
16+
<a href='/' className='mx-2 navlink--items' >{item}</a>
1717
))}
1818
</nav>
1919
</div>
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.
File renamed without changes.

src/Commons/Products/ProductCard.jsx

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import React from "react";
2+
import { MdStar } from "react-icons/md";
3+
import "./ProductCard.scss";
4+
import money from '../../Utils/Utils';
5+
6+
export default function ProductCard({
7+
productName,
8+
ratings,
9+
currentPrice,
10+
oldPrice
11+
}) {
12+
let stars = [];
13+
for (let i = 0; i < 5; i++) {
14+
if (i < ratings) {
15+
stars.push(<MdStar className="goldStar" />);
16+
} else {
17+
stars.push(<MdStar className="greyStar" />);
18+
}
19+
}
20+
21+
return (
22+
<div className="ProductCard">
23+
<div className="product-image">
24+
<img src={require('../../assets/img/apple_laptop.png')} alt="laptop" />
25+
</div>
26+
<hr />
27+
<div className="ProductCard__body">
28+
<h4>{productName}</h4>
29+
<div className="stars">{stars}</div>
30+
<div>
31+
<span>{money(currentPrice)}</span>
32+
<span className="crossed">{money(oldPrice)}</span>
33+
</div>
34+
</div>
35+
</div>
36+
);
37+
}

src/Commons/Products/ProductCard.scss

+46
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
.ProductCard {
2+
border: 3px solid #f6f7f8;
3+
width: 27rem;
4+
height: 34.9rem;
5+
border-radius: 3px;
6+
7+
.product-image {
8+
width: 23.6rem;
9+
height: 15.3rem;
10+
margin: 0 auto;
11+
}
12+
13+
&__body {
14+
display: flex;
15+
flex-direction: column;
16+
justify-content: space-evenly;
17+
height: 18rem;
18+
19+
h4 {
20+
font-size: 1.4rem;
21+
}
22+
23+
div span {
24+
font-size: 1.8rem;
25+
padding: .5rem;
26+
27+
&.crossed {
28+
color: grey;
29+
text-decoration: line-through;
30+
}
31+
}
32+
}
33+
}
34+
35+
.goldStar {
36+
color: gold;
37+
font-size: 1.6rem;
38+
39+
}
40+
41+
.greyStar {
42+
color: grey;
43+
font-size: 1.6rem;
44+
45+
}
46+

src/Commons/Products/ProductHeader.js

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
import React from 'react';
2+
import './ProductHeader.scss';
3+
import {bestSeller} from '../../data/metadata.json'
4+
5+
function ProductHeader() {
6+
7+
return (
8+
<div className="ProductHeader">
9+
<h3>best seller</h3>
10+
<div>
11+
{bestSeller.list.map((value, index) => (
12+
<a href="#" className="product-nav" key={index}>{value}</a>
13+
))}
14+
</div>
15+
</div>
16+
)
17+
}
18+
19+
export default ProductHeader;
+28
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
.ProductHeader {
2+
margin-bottom: 2rem;
3+
4+
h3 {
5+
text-transform: uppercase;
6+
font-size: 3rem;
7+
font-weight: 500;
8+
margin-bottom: 2rem;
9+
}
10+
div {
11+
display: flex;
12+
justify-content: center;
13+
}
14+
15+
}
16+
17+
.product-nav {
18+
text-decoration: none;
19+
font-size: 1.4rem;
20+
margin: 1rem 2rem;
21+
padding-bottom: .5rem;
22+
23+
&:hover, :active {
24+
color: #33a0ff;
25+
padding-bottom: .2rem;
26+
border-bottom: 3px solid #33a0ff;
27+
}
28+
}

src/Commons/Products/Products.jsx

+26
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
import React from "react";
2+
import ProductHeader from "./ProductHeader";
3+
import ProductCard from "./ProductCard";
4+
import { bestSeller } from "../../data/metadata.json";
5+
import "./Products.scss";
6+
7+
const { data } = bestSeller;
8+
9+
export default function Products() {
10+
return (
11+
<div className="container">
12+
<ProductHeader />
13+
<div className="Products">
14+
{data.map(value => (
15+
<ProductCard
16+
productName={value.productName}
17+
ratings={value.ratings}
18+
currentPrice={value.currentPrice}
19+
oldPrice={value.oldPrice}
20+
/>
21+
))}
22+
</div>
23+
<div className="more">Load More</div>
24+
</div>
25+
);
26+
}

src/Commons/Products/Products.scss

+21
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
.Products {
2+
max-width: 117rem;
3+
height: 80rem;
4+
margin: 0 auto;
5+
display: flex;
6+
flex-wrap: wrap;
7+
justify-content: space-between;
8+
align-content: space-evenly;
9+
10+
}
11+
12+
.more {
13+
text-transform: uppercase;
14+
font-weight: 700;
15+
color: #33a0ff;
16+
padding-bottom: .5rem;
17+
border-bottom: 3px solid #33a0ff;
18+
margin-top: 2rem;
19+
display: inline-block;
20+
margin-bottom: 4rem;
21+
}

0 commit comments

Comments
 (0)