@@ -92,6 +92,25 @@ const persistdisplayTabInFullStatus = (status) => {
92
92
} ) ;
93
93
} ;
94
94
95
+ /**
96
+ * Dark Mode
97
+ */
98
+ let darkMode = 'auto' ;
99
+
100
+ chrome . storage . sync . get ( [ 'darkMode' ] , ( result ) => {
101
+ if ( result . darkMode !== undefined ) {
102
+ darkMode = result . darkMode ;
103
+ } else {
104
+ persistDarkMode ( 'auto' ) ; // default to auto
105
+ }
106
+ } ) ;
107
+
108
+ const persistDarkMode = ( status ) => {
109
+ chrome . storage . sync . set ( {
110
+ darkMode : status ,
111
+ } ) ;
112
+ } ;
113
+
95
114
const toggleSidebar = ( toStatus = null ) => {
96
115
if ( toStatus === null || toStatus === undefined ) {
97
116
sidebarOpen = ! sidebarOpen ;
@@ -203,6 +222,23 @@ const updateDisplayTabInFullStatus = (toStatus) => {
203
222
) ;
204
223
} ;
205
224
225
+ const updateDarkModeStatus = ( toStatus ) => {
226
+ chrome . tabs . query (
227
+ {
228
+ currentWindow : true ,
229
+ } ,
230
+ function ( tabs ) {
231
+ tabs . forEach ( ( tab ) => {
232
+ chrome . tabs . sendMessage ( tab . id , {
233
+ from : 'background' ,
234
+ msg : 'UPDATE_DARK_MODE_STATUS' ,
235
+ toStatus,
236
+ } ) ;
237
+ } ) ;
238
+ }
239
+ ) ;
240
+ } ;
241
+
206
242
// chrome.browserAction.setPopup({
207
243
// popup: chrome.extension.getURL('sidebar.html'),
208
244
// });
@@ -281,5 +317,13 @@ chrome.runtime.onMessage.addListener((request, sender, sendResponse) => {
281
317
displayTabInFull = toStatus ;
282
318
persistdisplayTabInFullStatus ( displayTabInFull ) ;
283
319
updateDisplayTabInFullStatus ( displayTabInFull ) ;
320
+ } else if (
321
+ request . from === 'settings' &&
322
+ request . msg === 'USER_CHANGE_DARK_MODE'
323
+ ) {
324
+ const { toStatus } = request ;
325
+ darkMode = toStatus ;
326
+ persistDarkMode ( darkMode ) ;
327
+ updateDarkModeStatus ( darkMode ) ;
284
328
}
285
329
} ) ;
0 commit comments