1- import { useContext , useState , useEffect } from "react" ;
1+ import { useContext } from "react" ;
22import { AppContext } from "../contexts" ;
33import { PathEnum } from "../enum/path.enum" ;
44import { ThemesEnum } from "../enum/mode.enum" ;
5+ import ThemeToggle from "./Themes" ;
56
67export default function SidebarCommon ( ) {
7- const { pathUrl, isLogin, majorUser } = useContext ( AppContext ) ;
8- const [ theme , setTheme ] = useState < ThemesEnum > ( ThemesEnum . DARK ) ;
9-
10- useEffect ( ( ) => {
11- const savedTheme = localStorage . getItem ( "theme" ) as ThemesEnum | null ;
12- if ( savedTheme ) {
13- setTheme ( savedTheme ) ;
14- document . body . classList . toggle ( "dark-mode" , savedTheme === ThemesEnum . DARK ) ;
15- document . body . classList . toggle ( "light-mode" , savedTheme === ThemesEnum . LIGHT ) ;
16- }
17- } , [ ] ) ;
18-
19- const toggleTheme = ( ) => {
20- const newTheme = theme === ThemesEnum . DARK ? ThemesEnum . LIGHT : ThemesEnum . DARK ;
21- setTheme ( newTheme ) ;
22- localStorage . setItem ( "theme" , newTheme ) ;
23- document . body . classList . toggle ( "dark-mode" , newTheme === ThemesEnum . DARK ) ;
24- document . body . classList . toggle ( "light-mode" , newTheme === ThemesEnum . LIGHT ) ;
25- } ;
8+ const { pathUrl, isLogin, majorUser, theme } = useContext ( AppContext ) ;
269
2710 return (
28- < aside className = { `main-sidebar ${ theme === "dark" ? "sidebar-dark-primary" : "sidebar-light-primary" } elevation-4` } >
11+ < aside
12+ className = { `main-sidebar ${ theme === ThemesEnum . DARK
13+ ? "sidebar-dark-primary"
14+ : "sidebar-light-primary"
15+ } elevation-4`}
16+ >
2917 < div className = "sidebar" >
30-
3118 < div className = "user-panel mt-3 pb-3 mb-3 d-flex" >
3219 < div className = "image" >
3320 < img
@@ -52,7 +39,7 @@ export default function SidebarCommon() {
5239 role = "menu"
5340 data-accordion = "false"
5441 >
55- { majorUser === "admin" ? (
42+ { majorUser === "admin" && (
5643 < li className = "nav-item" >
5744 < a
5845 href = "/"
@@ -63,9 +50,9 @@ export default function SidebarCommon() {
6350 < p > หน้าเเรก</ p >
6451 </ a >
6552 </ li >
66- ) : null }
53+ ) }
6754
68- { majorUser === "admin" ? (
55+ { majorUser === "admin" && (
6956 < li className = "nav-item" >
7057 < a
7158 href = { PathEnum . DOCUMENT }
@@ -76,7 +63,7 @@ export default function SidebarCommon() {
7663 < p > นำเข้าข้อมูล</ p >
7764 </ a >
7865 </ li >
79- ) : null }
66+ ) }
8067
8168 < li className = "nav-item menu-open" >
8269 < a href = "#" className = "nav-link" >
@@ -90,7 +77,8 @@ export default function SidebarCommon() {
9077 < li className = "nav-item" >
9178 < a
9279 href = { PathEnum . STOCK_KAY }
93- className = { `nav-link ${ pathUrl === PathEnum . STOCK_KAY ? "active" : "" } ` }
80+ className = { `nav-link ${ pathUrl === PathEnum . STOCK_KAY ? "active" : ""
81+ } `}
9482 >
9583 < i className = "far fa-circle nav-icon" />
9684 < p > ขาย</ p >
@@ -99,7 +87,8 @@ export default function SidebarCommon() {
9987 < li className = "nav-item" >
10088 < a
10189 href = { PathEnum . STOCK_BYE }
102- className = { `nav-link ${ pathUrl === PathEnum . STOCK_BYE ? "active" : "" } ` }
90+ className = { `nav-link ${ pathUrl === PathEnum . STOCK_BYE ? "active" : ""
91+ } `}
10392 >
10493 < i className = "far fa-circle nav-icon" />
10594 < p > ซื้อ</ p >
@@ -108,7 +97,8 @@ export default function SidebarCommon() {
10897 < li className = "nav-item" >
10998 < a
11099 href = { PathEnum . STOCK_EQUIPMENT }
111- className = { `nav-link ${ pathUrl === PathEnum . STOCK_EQUIPMENT ? "active" : "" } ` }
100+ className = { `nav-link ${ pathUrl === PathEnum . STOCK_EQUIPMENT ? "active" : ""
101+ } `}
112102 >
113103 < i className = "far fa-circle nav-icon" />
114104 < p > อุปกรณ์</ p >
@@ -117,7 +107,10 @@ export default function SidebarCommon() {
117107 < li className = "nav-item" >
118108 < a
119109 href = { PathEnum . STOCK_INSTALLMENT_PAYMENT }
120- className = { `nav-link ${ pathUrl === PathEnum . STOCK_INSTALLMENT_PAYMENT ? "active" : "" } ` }
110+ className = { `nav-link ${ pathUrl === PathEnum . STOCK_INSTALLMENT_PAYMENT
111+ ? "active"
112+ : ""
113+ } `}
121114 >
122115 < i className = "far fa-circle nav-icon" />
123116 < p > ผ่อน</ p >
@@ -127,7 +120,10 @@ export default function SidebarCommon() {
127120 < li className = "nav-item" >
128121 < a
129122 href = { PathEnum . STOCK_INSTALLMENT_SUMMARY }
130- className = { `nav-link ${ pathUrl === PathEnum . STOCK_INSTALLMENT_SUMMARY ? "active" : "" } ` }
123+ className = { `nav-link ${ pathUrl === PathEnum . STOCK_INSTALLMENT_SUMMARY
124+ ? "active"
125+ : ""
126+ } `}
131127 >
132128 < i className = "far fa-circle nav-icon" />
133129 < p > สรุป</ p >
@@ -148,7 +144,7 @@ export default function SidebarCommon() {
148144 </ a >
149145 </ li >
150146
151- { majorUser === "admin" ? (
147+ { majorUser === "admin" && (
152148 < li className = "nav-item" >
153149 < a
154150 href = "/manage-user"
@@ -159,9 +155,9 @@ export default function SidebarCommon() {
159155 < p > จัดการผู้ใช้</ p >
160156 </ a >
161157 </ li >
162- ) : null }
158+ ) }
163159
164- { majorUser === "admin" ? (
160+ { majorUser === "admin" && (
165161 < li className = "nav-item" >
166162 < a
167163 href = "/income-list"
@@ -172,7 +168,7 @@ export default function SidebarCommon() {
172168 < p > รายรับ-รายจ่าย</ p >
173169 </ a >
174170 </ li >
175- ) : null }
171+ ) }
176172
177173 < li className = "nav-item" >
178174 < a href = "/app/Stock.msi" className = { `nav-link` } >
@@ -202,23 +198,11 @@ export default function SidebarCommon() {
202198 < p > ออกจากระบบ</ p >
203199 </ a >
204200 </ li >
205-
206201 </ ul >
207-
208202 </ nav >
209203 ) }
210-
211- </ div >
212-
213- < div className = "d-flex justify-content-around" >
214- < button
215- onClick = { toggleTheme }
216- className = { `btn btn-sm ${ theme === ThemesEnum . DARK ? "btn-outline-light" : "btn-dark" } ` }
217- >
218- { theme === ThemesEnum . DARK ? "🌞 Light" : "🌙 Dark" }
219- </ button >
220-
221204 </ div >
205+ < ThemeToggle />
222206 </ aside >
223207 ) ;
224208}
0 commit comments