Skip to content

Commit 4f0924c

Browse files
committed
refactor:convert prop drilling to context api
1 parent 22abeb6 commit 4f0924c

File tree

3 files changed

+24
-11
lines changed

3 files changed

+24
-11
lines changed

src/App.js

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -6,26 +6,34 @@ import Footer from "./components/Footer";
66
import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
77
import Place from "./components/Place";
88
import Modal from "./components/Modal";
9+
import { createContext } from "react";
10+
11+
export const thetruecontext = createContext();
912

1013
function App() {
11-
1214
const [showModal, setshowModal] = useState(false);
1315

14-
16+
const trueboolean = function funcTrue() {
17+
setshowModal(true);
18+
};
1519
return (
1620
<Router>
1721
<>
18-
19-
<Modal modalState={showModal} setshowModalFalse={()=>setshowModal(false)} />
20-
<Nav setshowModalTrue={() => setshowModal(true)} />
22+
<Modal
23+
modalState={showModal}
24+
setshowModalFalse={() => setshowModal(false)}
25+
/>
26+
<thetruecontext.Provider value={trueboolean}>
27+
<Nav />
28+
</thetruecontext.Provider>
29+
2130
<Routes>
2231
<Route path="/" element={<Homepage />} />
2332

2433
<Route path="/place" element={<Place />} />
2534
</Routes>
2635
<Footer />
27-
28-
</>
36+
</>
2937
</Router>
3038
);
3139
}

src/Nav.js

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,9 @@ import { FontAwesomeIcon } from "@fortawesome/react-fontawesome";
99
import { Link } from 'react-router-dom';
1010

1111

12-
function Nav({setshowModalTrue}) {
12+
13+
function Nav() {
14+
1315

1416
return (
1517
<section className="nav--container grid">
@@ -28,7 +30,7 @@ function Nav({setshowModalTrue}) {
2830
</nav>
2931
<div>
3032
{" "}
31-
<Button name="Connect wallet" styleclass="nav-btn" clicked={setshowModalTrue} />
33+
<Button name="Connect wallet" styleclass="nav-btn"/>
3234
</div>
3335
<div className="hamburger-menu">
3436
<FontAwesomeIcon icon={faBars} className="hamburger-menu" />

src/components/Button.js

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
11
import React from "react";
22
import "../styles/button.css";
3+
import { thetruecontext } from '../App';
4+
import { useContext } from "react";
35

4-
function Button({ name, styleclass,clicked }) {
5-
return <button onClick={clicked} className={`btn ${styleclass}`}>{name}</button>;
6+
function Button({ name, styleclass}) {
7+
const settoTrue = useContext(thetruecontext);
8+
return <button onClick={settoTrue} className={`btn ${styleclass}`}>{name}</button>;
69
}
710

811
export default Button;

0 commit comments

Comments
 (0)