11import { NavLink } from "react-router"
2- import { House , Devices , Users , PencilLine , BeerStein } from "@phosphor-icons/react"
2+ import { House , Devices , Users , PencilLine , BeerStein , Moon , Sun } from "@phosphor-icons/react"
33import { authClient } from "../lib/auth-client"
4+ import { useContext } from "react"
5+ import { AppContext } from "../ContextProvider"
46
57type Props = {
68 onClick : ( ) => void
79}
810
911const NavLinks = ( props : Props ) => {
1012 const session = authClient . useSession ( )
13+ const { isDarkMode, toggleDarkMode } = useContext ( AppContext )
14+
1115 return (
1216 < nav className = "px-4 py-6" >
1317 < NavLink
1418 onClick = { props . onClick }
1519 to = "/"
1620 className = { ( { isActive } ) =>
17- `block py-2.5 px-4 rounded-sm transition ${ isActive ? "bg-gray-200" : "hover:bg-gray-100" } `
21+ `block py-2.5 px-4 rounded-sm transition ${
22+ isActive ? "bg-gray-200 dark:bg-gray-700" : "hover:bg-gray-100 dark:hover:bg-gray-800"
23+ } `
1824 }
1925 >
2026 < div className = "flex items-center" >
@@ -26,7 +32,9 @@ const NavLinks = (props: Props) => {
2632 onClick = { props . onClick }
2733 to = "/beers"
2834 className = { ( { isActive } ) =>
29- `block py-2.5 px-4 rounded-sm transition ${ isActive ? "bg-gray-200" : "hover:bg-gray-100" } `
35+ `block py-2.5 px-4 rounded-sm transition ${
36+ isActive ? "bg-gray-200 dark:bg-gray-700" : "hover:bg-gray-100 dark:hover:bg-gray-800"
37+ } `
3038 }
3139 >
3240 < div className = "flex items-center" >
@@ -39,7 +47,9 @@ const NavLinks = (props: Props) => {
3947 onClick = { props . onClick }
4048 to = "/users"
4149 className = { ( { isActive } ) =>
42- `block py-2.5 px-4 rounded-sm transition ${ isActive ? "bg-gray-200" : "hover:bg-gray-100" } `
50+ `block py-2.5 px-4 rounded-sm transition ${
51+ isActive ? "bg-gray-200 dark:bg-gray-700" : "hover:bg-gray-100 dark:hover:bg-gray-800"
52+ } `
4353 }
4454 >
4555 < div className = "flex items-center" >
@@ -53,7 +63,9 @@ const NavLinks = (props: Props) => {
5363 onClick = { props . onClick }
5464 to = "/sessions"
5565 className = { ( { isActive } ) =>
56- `block py-2.5 px-4 rounded-sm transition ${ isActive ? "bg-gray-200" : "hover:bg-gray-100" } `
66+ `block py-2.5 px-4 rounded-sm transition ${
67+ isActive ? "bg-gray-200 dark:bg-gray-700" : "hover:bg-gray-100 dark:hover:bg-gray-800"
68+ } `
5769 }
5870 >
5971 < div className = "flex items-center" >
@@ -66,17 +78,28 @@ const NavLinks = (props: Props) => {
6678 onClick = { props . onClick }
6779 to = "/contact"
6880 className = { ( { isActive } ) =>
69- `block py-2.5 px-4 rounded-sm transition ${ isActive ? "bg-gray-200" : "hover:bg-gray-100" } `
81+ `block py-2.5 px-4 rounded-sm transition ${
82+ isActive ? "bg-gray-200 dark:bg-gray-700" : "hover:bg-gray-100 dark:hover:bg-gray-800"
83+ } `
7084 }
7185 >
7286 < div className = "flex items-center" >
7387 < PencilLine className = "mr-2" />
7488 Contact
7589 </ div >
7690 </ NavLink >
91+ < button
92+ onClick = { toggleDarkMode }
93+ className = "block py-2.5 px-4 rounded-sm transition hover:bg-gray-100 dark:hover:bg-gray-800 w-full text-left"
94+ >
95+ < div className = "flex items-center" >
96+ { isDarkMode ? < Sun className = "mr-2" /> : < Moon className = "mr-2" /> }
97+ { isDarkMode ? "Light Mode" : "Dark Mode" }
98+ </ div >
99+ </ button >
77100 < a
78101 href = "https://github.com/alan345/Fullstack-SaaS-Boilerplate"
79- className = "block py-2.5 px-4 rounded-sm transition hover:bg-gray-100"
102+ className = "block py-2.5 px-4 rounded-sm transition hover:bg-gray-100 dark:hover:bg-gray-800 "
80103 target = "_blank"
81104 rel = "noopener noreferrer"
82105 >
0 commit comments