|
1 | 1 | import'./App.css'; |
2 | | -importNotefrom'./components/note/note'; |
3 | | -import{Notes}from'./components/note/data'; |
4 | | -importAddNotefrom'./components/add-note/add-note'; |
| 2 | +import{ThemeContext}from'./context/theme/theme'; |
| 3 | +importHomefrom'./pages/home/home'; |
| 4 | +importSwitchfrom"react-switch"; |
| 5 | +import{FaSun,FaMoon}from'react-icons/fa'; |
5 | 6 | import{useState}from'react'; |
6 | | -import{NoteType}from'./components/note/note-type'; |
7 | 7 |
|
8 | 8 | functionApp(){ |
9 | | -const[notes,setNotes]=useState(Notes); |
10 | | -const[editMode,setEditMode]=useState(false); |
11 | | -const[noteToBeEditted,setNoteToBeEditted]=useState<NoteType|null>(null); |
| 9 | +const[theme,setTheme]=useState('light'); |
| 10 | +const[checked,setChecked]=useState(false); |
| 11 | + |
12 | 12 |
|
13 | | -constaddNote=(note:NoteType)=>{ |
14 | | -setNotes([note, ...notes]); |
15 | | -}; |
16 | | - |
17 | | -constupdateNote=(updatedNote:NoteType)=>{ |
18 | | -constindex=notes.findIndex((note)=>note.id===updatedNote.id); |
19 | | -leteditedNotes=[...notes]; |
20 | | -editedNotes.splice(index,1,updatedNote); |
21 | | -setNotes(editedNotes); |
22 | | -setEditMode(false); |
23 | | -}; |
24 | | - |
25 | | -consteditNote=(id:string)=>{ |
26 | | -console.log('edit',id); |
27 | | -constnote=notes.find((note)=>note.id===id); |
28 | | -setEditMode(true); |
29 | | -if(note){ |
30 | | -setNoteToBeEditted(note); |
| 13 | +constchangeHandler=(check:boolean)=>{ |
| 14 | +setChecked(!checked); |
| 15 | +if(check){ |
| 16 | +setTheme('dark'); |
| 17 | +}else{ |
| 18 | +setTheme('light') |
31 | 19 | } |
32 | | -}; |
| 20 | +console.log(checked,check) |
| 21 | +} |
33 | 22 |
|
34 | | -constdeleteNote=(id:string)=>{ |
35 | | -constindex=notes.findIndex((note)=>note.id===id); |
36 | | -leteditedNotes=[...notes]; |
37 | | -editedNotes.splice(index,1); |
38 | | -setNotes(editedNotes); |
39 | | -}; |
40 | 23 | return( |
41 | | -<divclassName="App"> |
42 | | -<h2>Notes App</h2> |
43 | | -<AddNote |
44 | | -addNote={addNote} |
45 | | -editMode={editMode} |
46 | | -noteToBeEditted={noteToBeEditted} |
47 | | -updateNote={updateNote} |
48 | | -></AddNote> |
49 | | -<div> |
50 | | -{notes.map((note)=>( |
51 | | -<Note |
52 | | -key={note.id} |
53 | | -id={note.id} |
54 | | -priority={note.priority} |
55 | | -text={note.text} |
56 | | -editNote={editNote} |
57 | | -deleteNote={deleteNote} |
58 | | -></Note> |
59 | | -))} |
60 | | -</div> |
61 | | -</div> |
| 24 | +<ThemeContext.Providervalue={theme}> |
| 25 | +<Switch |
| 26 | +onChange={changeHandler} |
| 27 | +checked={checked} |
| 28 | +className='react-switch' |
| 29 | +uncheckedIcon={<FaMoonsize={20}style={{paddingTop:'4px',paddingRight:'4px',float:'right'}}color="white"></FaMoon>} |
| 30 | +checkedIcon={<FaSunsize={20}style={{paddingTop:'4px',paddingLeft:'4px'}}color="yellow"></FaSun>} |
| 31 | +onColor="#900" |
| 32 | +offColor="#333" |
| 33 | +onHandleColor="#000" |
| 34 | +></Switch> |
| 35 | +<Home></Home> |
| 36 | +</ThemeContext.Provider> |
62 | 37 | ); |
63 | 38 | } |
64 | 39 |
|
|