File tree Expand file tree Collapse file tree 3 files changed +66
-2
lines changed
All Assessment/assessment21 Expand file tree Collapse file tree 3 files changed +66
-2
lines changed Original file line number Diff line number Diff line change 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+ } ;
Original file line number Diff line number Diff line change @@ -35,7 +35,7 @@ import FollowingCurser from "./All Assessment/assessment19/FollowingCurser";
3535
3636import Debouncing from "./All Assessment/assessment19/Debouncing" ;
3737import Toster from "./All Assessment/assessment21/Toster" ;
38-
38+ import MyToaster from "./All Assessment/assessment21/MyToaster" ;
3939
4040ReactGA . 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" /> }
Original file line number Diff line number Diff 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
You can’t perform that action at this time.
0 commit comments