Skip to content

Commit ae70a48

Browse files
committed
add My toaster
1 parent d6664c5 commit ae70a48

File tree

3 files changed

+66
-2
lines changed

3 files changed

+66
-2
lines changed
Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,58 @@
1+
import React from "react";
2+
3+
const MyToaster = () => {
4+
const [toast, setToast] = React.useState([]);
5+
console.log("toast:", toast);
6+
7+
const handleClick = () => {
8+
const newToast = { id: Date.now() };
9+
setToast(prev => [...prev, newToast]);
10+
setTimeout(() => {
11+
removeToast(newToast.id);
12+
}, 6000);
13+
};
14+
15+
const removeToast = id => {
16+
setToast(prev => prev.filter(t => t.id !== id));
17+
};
18+
19+
return (
20+
<div className="App">
21+
<div style={{ position: "fixed", top: "10px", right: "20px" }}>
22+
{toast.map((t, index) =>
23+
<div key={t.id} style={{ marginTop: `${index * 60}px` }}>
24+
<Toast close={() => removeToast(t.id)} />
25+
</div>
26+
)}
27+
</div>
28+
<h1>Hello React.</h1>
29+
<button onClick={handleClick}>Click Me To Show Toaster</button>
30+
</div>
31+
);
32+
};
33+
34+
export default MyToaster;
35+
36+
const Toast = ({ close }) => {
37+
return (
38+
<div
39+
style={{
40+
display: "flex",
41+
justifyContent: "center",
42+
alignItems: "center",
43+
gap: "20px",
44+
backgroundColor: "white",
45+
padding: "10px",
46+
backgroundColor: "red"
47+
}}
48+
>
49+
<h1>I am a sweet Toast</h1>
50+
<button
51+
style={{ fontSize: "3rem", backgroundColor: "transparent" }}
52+
onClick={close}
53+
>
54+
x
55+
</button>
56+
</div>
57+
);
58+
};

src/App.jsx

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import FollowingCurser from "./All Assessment/assessment19/FollowingCurser";
3535

3636
import Debouncing from "./All Assessment/assessment19/Debouncing";
3737
import Toster from "./All Assessment/assessment21/Toster";
38-
38+
import MyToaster from "./All Assessment/assessment21/MyToaster";
3939

4040
ReactGA.initialize("G-R3DJ0V5QK6");
4141

@@ -104,7 +104,9 @@ const App = () => {
104104
<Route path="/following-curser" element={<FollowingCurser />} />
105105
<Route path="/problems" element={<ProblemsPage />} />
106106
<Route path="/feedback" element={<Feedback />} />
107-
<Route path="/debouncing" element={<Debouncing />} /><Route path="/toster" element={<Toster />} />
107+
<Route path="/debouncing" element={<Debouncing />} />
108+
<Route path="/toster" element={<Toster />} />
109+
<Route path="/mytoster" element={<MyToaster />} />
108110
<Route
109111
path="/code"
110112
element={<Code code={exampleCode} language="javascript" />}

src/Utils.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,10 @@ export const buttonDetails = [
8484
{
8585
name: "Toster",
8686
description: "Toster message trigger on event."
87+
},
88+
{
89+
name: "MyToster",
90+
description: "Toster message trigger on event jo ki maine khud banaya hai"
8791
}
8892
];
8993

0 commit comments

Comments
 (0)