Skip to content

Commit 977af2a

Browse files
committed
Refactor Code with Reusable Components: 12. E-Commerce Advanced Filter Project
1 parent 227cf5c commit 977af2a

File tree

8 files changed

+99
-47
lines changed

8 files changed

+99
-47
lines changed

12. E-Commerce Filter Advanced/src/Products/Products.jsx

Lines changed: 7 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,14 @@
11
import "./Products.css";
2-
import { AiFillStar } from "react-icons/ai";
3-
import { BsFillBagHeartFill } from "react-icons/bs";
2+
import Card from "../components/Card";
43

54
function Products() {
65
return (
7-
<>
8-
<div className="card-container">
9-
<div className="card">
10-
<img
11-
className="card-img"
12-
src="https://m.media-amazon.com/images/I/6125yAfsJKL._AC_UX575_.jpg"
13-
alt="Shoe"
14-
/>
15-
<div className="card-details">
16-
<h3 className="card-title">Shoe</h3>
17-
<section className="card-reviews">
18-
<AiFillStar className="ratings-start" />
19-
<AiFillStar className="ratings-start" />
20-
<AiFillStar className="ratings-start" />
21-
<AiFillStar className="ratings-start" />
22-
23-
<span className="total-reviews">4</span>
24-
</section>
25-
<section className="card-price">
26-
<div className="price">
27-
<del>$300</del>
28-
</div>
29-
30-
<div className="bag">
31-
<BsFillBagHeartFill className="bag-icon" />
32-
</div>
33-
</section>
34-
</div>
35-
</div>
36-
</div>
37-
</>
6+
<div className="card-container">
7+
<Card />
8+
<Card />
9+
<Card />
10+
<Card />
11+
</div>
3812
);
3913
}
4014

12. E-Commerce Filter Advanced/src/Sidebar/Category/Category.jsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,16 @@
11
import "./Category.css";
2+
import Input from "../../components/Input";
23

34
function Category() {
45
return (
56
<div>
67
<h2 className="sidebar-title">Category</h2>
78
<div>
8-
<label className="sidebar-label-container">
9-
<input type="radio" name="test" id="" />
10-
<span className="checkmark"></span>All
11-
</label>
9+
<Input />
10+
<Input />
11+
<Input />
12+
<Input />
13+
1214
</div>
1315
</div>
1416
);

12. E-Commerce Filter Advanced/src/Sidebar/Colors/Colors.jsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,15 @@
11
import "./Colors.css";
2+
import Input from "../../components/Input";
3+
24
function Colors() {
35
return (
46
<div>
57
<h2 className="sidebar-title">Colors</h2>
68
<div>
7-
<label className="sidebar-label-container">
8-
<input type="radio" name="test" id="" />
9-
<span className="checkmark"></span>All
10-
</label>
9+
<Input />
10+
<Input />
11+
<Input />
12+
<Input />
1113
</div>
1214
</div>
1315
);

12. E-Commerce Filter Advanced/src/Sidebar/Price/Price.jsx

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
import React from "react";
2+
import Input from "../../components/Input";
23
import "./Price.css";
34

45
function Price() {
56
return (
67
<div className="ml">
78
<h2 className="sidebar-title price-title">Price</h2>
89

9-
<label className="sidebar-label-container">
10-
<input type="radio" name="test" id="" />
11-
<span className="checkmark"></span>$0 - $50
12-
</label>
10+
<Input />
11+
<Input />
12+
<Input />
13+
<Input />
1314
</div>
1415
);
1516
}
Lines changed: 33 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,39 @@
11
import React from "react";
2+
import { AiFillStar } from "react-icons/ai";
3+
import { BsFillBagHeartFill } from "react-icons/bs";
24

35
function Card() {
4-
return <div></div>;
6+
return (
7+
<>
8+
<div className="card">
9+
<img
10+
className="card-img"
11+
src="https://m.media-amazon.com/images/I/6125yAfsJKL._AC_UX575_.jpg"
12+
alt="Shoe"
13+
/>
14+
<div className="card-details">
15+
<h3 className="card-title">Shoe</h3>
16+
<section className="card-reviews">
17+
<AiFillStar className="ratings-start" />
18+
<AiFillStar className="ratings-start" />
19+
<AiFillStar className="ratings-start" />
20+
<AiFillStar className="ratings-start" />
21+
22+
<span className="total-reviews">4</span>
23+
</section>
24+
<section className="card-price">
25+
<div className="price">
26+
<del>$300</del>
27+
</div>
28+
29+
<div className="bag">
30+
<BsFillBagHeartFill className="bag-icon" />
31+
</div>
32+
</section>
33+
</div>
34+
</div>
35+
</>
36+
);
537
}
638

739
export default Card;
Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
import React from "react";
22

33
function Input() {
4-
return <div></div>;
4+
return (
5+
<label className="sidebar-label-container">
6+
<input type="radio" name="test" id="" />
7+
<span className="checkmark"></span>All
8+
</label>
9+
);
510
}
611

712
export default Input;

package-lock.json

Lines changed: 31 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"dependencies": {
3+
"react-icons": "^5.5.0"
4+
}
5+
}

0 commit comments

Comments
 (0)