@@ -2,23 +2,31 @@ import React, { useEffect, useState } from "react";
22import styles from "./Components.module.css" ;
33import SideBarLink from "./SideBarLink" ;
44import Image from "next/image" ;
5+ import { User } from "../pages/_types" ;
6+ import Router from "next/router" ;
7+ import { FcSynchronize } from "react-icons/fc" ;
8+ import { CgProfile } from "react-icons/cg" ;
9+ import Link from "next/link"
10+
511
612type Props = {
713 showSidebar : boolean ;
814} ;
915
1016function SideBar ( { showSidebar } : Props ) {
11-
12- const [ storedNotesCount , setstoredNotesCount ] = useState ( "" )
13- const [ deletedNotesCount , setdeletedNotesCount ] = useState ( "" )
17+ const [ storedNotesCount , setstoredNotesCount ] = useState ( "" ) ;
18+ const [ deletedNotesCount , setdeletedNotesCount ] = useState ( "" ) ;
19+ const [ User , setUser ] = useState < User > ( ) ;
1420
1521 useEffect ( ( ) => {
16- const Notes = JSON . parse ( localStorage . getItem ( "NOTES" ) ! )
17- const deletedNotes = JSON . parse ( localStorage . getItem ( "DELETED_NOTES" ) ! )
22+ const Notes = JSON . parse ( localStorage . getItem ( "NOTES" ) ! ) ;
23+ const deletedNotes = JSON . parse ( localStorage . getItem ( "DELETED_NOTES" ) ! ) ;
24+ const user = JSON . parse ( localStorage . getItem ( "user" ) ! ) ;
1825
19- setstoredNotesCount ( Notes ?. length )
20- setdeletedNotesCount ( deletedNotes ?. length )
21- } , [ ] )
26+ setstoredNotesCount ( Notes ?. length ) ;
27+ setdeletedNotesCount ( deletedNotes ?. length ) ;
28+ setUser ( user as User ) ;
29+ } , [ ] ) ;
2230
2331 return (
2432 < div
@@ -30,10 +38,46 @@ function SideBar({ showSidebar }: Props) {
3038 >
3139 < div className = { styles . sidebar_wrapper } >
3240 < div className = { styles . sidebar_profile } >
33- < Image src = "/Images/Icons/person.png" width = { 30 } height = { 30 } alt = "person" />
41+ < h2 > { User ?. username } </ h2 >
42+ < div >
43+ < Image
44+ src = "/Images/Icons/person.png"
45+ width = { 30 }
46+ height = { 30 }
47+ alt = "person"
48+ />
49+ </ div >
3450 </ div >
35- < SideBarLink path = "/home" showSidebar = { showSidebar } value = "All notes" icon = "/Images/Icons/notes.png" count = { storedNotesCount } />
36- < SideBarLink path = "/recycle" showSidebar = { showSidebar } value = "Recycle bin" icon = "/Images/Icons/recycle.png" count = { deletedNotesCount } />
51+ < SideBarLink
52+ path = "/home"
53+ showSidebar = { showSidebar }
54+ value = "All notes"
55+ icon = "/Images/Icons/notes.png"
56+ count = { storedNotesCount }
57+ />
58+ < SideBarLink
59+ path = "/recycle"
60+ showSidebar = { showSidebar }
61+ value = "Recycle bin"
62+ icon = "/Images/Icons/recycle.png"
63+ count = { deletedNotesCount }
64+ />
65+ < hr />
66+ { User ?. guest ? (
67+ < div className = { styles . control_pannel } >
68+ < CgProfile size = { 25 } color = "white" />
69+ < Link href = { '/' } style = { { color : "white" } } >
70+ Create Account for Free or SignIn
71+ </ Link >
72+ </ div >
73+ ) : (
74+ < div >
75+ < button className = { `${ styles . control_pannel } ${ styles . functions } ` } >
76+ < FcSynchronize size = { 25 } color = "white" />
77+ < div > Sync Notes</ div >
78+ </ button >
79+ </ div >
80+ ) }
3781 </ div >
3882 </ div >
3983 ) ;
0 commit comments